如何运行GCC/Clang进行静态分析? (仅警告)

问题描述 投票:0回答:2

在不编译代码的情况下,我希望 GCC 或 Clang 报告警告。
是否可以运行编译器仅进行静态分析?
我找不到一种方法来传递编译器警告标志并告诉它不要编译。

编辑:刚刚发现 clang 有一个 静态分析器

c++ gcc clang static-analysis
2个回答
18
投票

GCC 和 Clang 都有一个选项

-fsyntax-only
使编译器仅执行语法检查而不进行任何实际编译。


4
投票

除了其他回复之外,

gcc
还在编译期间(甚至在一些优化过程中)进行了一些分析。因此,您可以丢弃生成的代码,但仍然会收到所有警告,例如
gcc -Wall -O -c code.c -o /dev/null

请注意,您可以使用额外的通道来扩展 GCC,执行一些额外的、特定于应用程序的检查和警告,例如使用 MELT(扩展 GCC 的高级领域特定语言)。

如果您想要强大的静态分析并愿意为此目的提供额外的注释,也可以考虑Frama C

© www.soinside.com 2019 - 2024. All rights reserved.