C++ 如何运行GCC/Clang进行静态分析?(仅限警告)
在不编译代码的情况下,我希望GCC或Clang报告警告。C++ 如何运行GCC/Clang进行静态分析?(仅限警告),c++,gcc,compiler-construction,clang,static-analysis,C++,Gcc,Compiler Construction,Clang,Static Analysis,在不编译代码的情况下,我希望GCC或Clang报告警告。 是否可以仅为静态分析运行编译器? 我找不到传递编译器警告标志并告诉它不要编译的方法 编辑:刚刚发现clang有一个GCC和clang都有一个选项-fsyntax only,使得编译器只执行语法检查而不进行任何实际编译。除了其他回复之外,GCC还在编译期间(甚至在一些优化过程中)进行一些分析。因此,您可以丢弃生成的代码,仍然可以获得所有警告,例如,gcc-Wall-O-c code.c-O/dev/null 请注意,您可以通过额外的过程来扩
是否可以仅为静态分析运行编译器?
我找不到传递编译器警告标志并告诉它不要编译的方法
编辑:刚刚发现clang有一个GCC和clang都有一个选项
-fsyntax only
,使得编译器只执行语法检查而不进行任何实际编译。除了其他回复之外,GCC
还在编译期间(甚至在一些优化过程中)进行一些分析。因此,您可以丢弃生成的代码,仍然可以获得所有警告,例如,gcc-Wall-O-c code.c-O/dev/null
请注意,您可以通过额外的过程来扩展GCC,执行一些额外的、特定于应用程序的检查和警告,例如使用(扩展GCC的高级领域特定语言)
如果你想要强大的静态分析并愿意为这个目的给出额外的注释,请考虑。
尝试<代码> -fScript只< < /代码>。@ KerrkSb完美!感谢you@KerrekSB:将其移动到回答:)但是需要注意的是,该标志对于clang更有用,对于G++来说,它不进行模板实例化,这意味着错过了很多可能的诊断