Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果不编译代码,我希望 GCC 或 Clang 报告警告。 是否可以仅运行编译器进行静态分析? 我找不到传递编译器警告标志并告诉它不要编译的方法。
编辑:刚刚发现clang有一个静态分析器
GCC 和 Clang 都有一个选项-fsyntax-only,使编译器只执行语法检查而不进行任何实际编译。
-fsyntax-only
除了其他回复外,还在gcc编译期间(甚至在一些优化过程中)进行了一些分析。因此,您可以丢弃生成的代码,但仍会收到所有警告,例如gcc -Wall -O -c code.c -o /dev/null
gcc
gcc -Wall -O -c code.c -o /dev/null
请注意,您可以通过额外的通行证来扩展 GCC,做一些额外的、特定于应用程序的检查和警告,例如使用MELT(一种用于扩展 GCC 的高级域特定语言)。
如果您想要强大的静态分析并愿意为此目的提供额外的注释,还可以考虑Frama C。