我希望gcc对错误进行源代码分析,但不要写任何输出文件(类似于splint的作用)。 我目前找到了这个解决方案:
gcc -Wall -c source.c > NUL
答案 0 :(得分:7)
有-fsyntax-only
选项,这正是您想要的:
“检查代码是否存在语法错误,但不要这样做 除此之外的任何事情。“
此选项在操作系统之间更容易移植,而不是使用/dev/null
或NUL
作为输出。
clang C / C ++ / ObjC前端也支持此选项,它与LLVM一起使用:clang-3.1 -fsyntax-only
。
更新:但您应该知道某些警告不是由语法分析器生成的,而是由内部编译器阶段生成的。例如,语法分析器无法检测完整的控制流(仅优化器),并且-fsyntax-only
选项中不会生成某些警告,如“控制到达非空函数的结尾”。
答案 1 :(得分:3)
好吧,您可以将输出重定向到/dev/null
gcc -o /dev/null ...