日安。
我正在尝试使用clang --analyze运行静态分析。我的Makefile中的CFLAGS非常长。
CFLAGS= -I$(RESOURCES) -I$(IMPORTED_HEADERS) -I$(EXPORTED_HEADERS) -isystem$(ATL_MFC_INCLUDE) -isystem$(SDK7INCLUDE) -isystem$(VCINCLUDE) -ferror-limit=0 -std=c++14 -fsyntax-only -Wmicrosoft -fms-extensions -fms-compatibility -Wno-microsoft-extra-qualification -Wno-non-pod-varargs -Wno-microsoft-cast -Wno-invalid-token-paste -Wno-inconsistent-dllimport -D_ATL_NO_HOSTING -DUNICODE -D_UNICODE -DWIN32 -D_DEBUG -DDEBUG
无论我在哪里尝试--分析,在开始或结束时,我都会得到这样的警告:
clang.exe: warning: argument unused during compilation: '--analyze' [-Wunused-command-line-argument]
然而,当编译一个简单的cpp文件时,静态分析就开始起作用了。例如:
#include <string.h>
int main(int, char**)
{
strcpy(NULL, "Hello");
return 0;
}
它是一种带有clang的bug吗?还是我做错了什么?
发布于 2017-10-19 01:37:15
这可能是因为您的命令行中有-fsyntax-only
。
-fsyntax-only
指示编译器检查代码中的语法错误,然后退出,而不进行编译。
通过删除该标志,--analyze
应该会发挥作用。
https://stackoverflow.com/questions/46793908
复制相似问题