I'd like gcc to do source code analysis for errors, but do not write any output files (similarly to what splint does). I've found this solution currently:
gcc -Wall -c source.c > NUL
有一个-fsyntax-only
选项,这正是您想要的:
“检查代码是否有语法错误,但除此之外不要做任何事情。”
/dev/null
与使用或NUL
作为输出相比,此选项在操作系统之间更具可移植性。
与 LLVM 一起使用的 clang C/C++/ObjC 前端也支持此选项:clang-3.1 -fsyntax-only
.
更新:但是您应该知道,某些警告不是由语法解析器生成的,而是由内部编译器阶段生成的。-fsyntax-only
例如,语法解析器无法检测到完整的控制流(只有优化器会),并且在选项中不会生成一些警告,如“控制到达非无效函数的结尾” 。
Well, you could redirect the output to /dev/null
gcc -o /dev/null ...