没有编译的gcc打印警告

时间:2012-04-29 20:14:22

标签: gcc lint

我希望gcc对错误进行源代码分析,但不要写任何输出文件(类似于splint的作用)。 我目前找到了这个解决方案:

gcc -Wall -c source.c > NUL

2 个答案:

答案 0 :(得分:7)

-fsyntax-only选项,这正是您想要的:

  

“检查代码是否存在语法错误,但不要这样做   除此之外的任何事情。“

此选项在操作系统之间更容易移植,而不是使用/dev/nullNUL作为输出。

clang C / C ++ / ObjC前端也支持此选项,它与LLVM一起使用:clang-3.1 -fsyntax-only

更新:但您应该知道某些警告不是由语法分析器生成的,而是由内部编译器阶段生成的。例如,语法分析器无法检测完整的控制流(仅优化器),并且-fsyntax-only选项中不会生成某些警告,如“控制到达非空函数的结尾”。

答案 1 :(得分:3)

好吧,您可以将输出重定向到/dev/null

gcc -o /dev/null ...