如何提升gcc的编译告警等级

isnoopy516 2007-12-11 03:17:54
小弟刚刚接触linux,还请大家多多帮助;
我在下面这段代码中gcc编译器会报一个告警而不是错误:

void test(){
char content[100];
CORBA::String_var cor_str=CORBA::String_dup("test");
sprintf(content,"%s",cor_str); <-----报告警的这一行
cout<<content<<endl;
}
警告:不能通过'...'传递有非简单旧数据类型'class OB::StrForStruct'的对象,调用会在运行时中止
警告:格式'%s'需要类型'char*',但实参3的类型为'int'
报告警的原因也很清楚,格式化函数sprintf的参数cor_str不是一个char*格式字符串而是一个corba字符串对象,该程序会在运行时候在sprintf该行core掉,我想既然编译器已经察觉出“调用会在运行时中止”这样的比较严重的问题,应该停止继续编译,不该继续生成可执行文件,所以我希望能通过什么方法(设置gcc等)对该类型告警(gcc编译参数为-Wformat)提升告警等级到错误等级,遇到就当成编译错误处理,但我查阅了gcc文档发现好像只提供一个-Werror 编译参数 是对所有的告警都提升到错误处理的,但是这个也不是我需要的,请问各位大侠,如何有针对性的提升一类编译告警的告警等级呢?

...全文
1450 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxf7394373 2012-02-20
  • 打赏
  • 举报
回复
不能通过'...'传递有非简单旧数据类型'class OB::StrForStruct'的对象,调用会在运行时中止
这个警告产生的原因是什么?
NKLoveRene 2007-12-14
  • 打赏
  • 举报
回复
加-Wall选项
云梦谭 2007-12-14
  • 打赏
  • 举报
回复
-Wall
mymtom 2007-12-12
  • 打赏
  • 举报
回复
-Wall -Werror
yecheng_110 2007-12-11
  • 打赏
  • 举报
回复
处理所有的警告
很多警告就是一个错误
rainharder 2007-12-11
  • 打赏
  • 举报
回复
好的编程习惯是把warning当作error处理

23,224

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧