我在Ubuntu桌面上安装了scan-build / clang 2.9版。我使用make在那里构建我的C ++源代码。正如它所说的扫描构建将分析一个使用make构建的项目,如果你给出
scan-build make
到
但在make之后我看到了一条消息
scan-build: Removing '/tmp/scan-build-2013-10-16-1' because it contains no reports.
也试过
scan-build --use-c++=/use/bin/clang++ make
Q1 - 我在这里做错了什么/失踪了。如何使用scan-build分析所有源文件。
Q2 - 是否有使用clang++ --analyze myfile.cpp
的选项
分析单个源文件。但它给出了一个包含未找到'致命'错误'my.h
如何选择clang analyze以将其指向具有头文件的文件夹。
答案 0 :(得分:2)
对于Q2,您应该可以使用:
scan-build clang++ -c myfile.cpp
或你的建议:
clang++ --analyze myfile.cpp
但您需要确保编译器知道所有包含和库(您应该能够成功将myfile.cpp编译为目标文件而无需分析)。这尤其包括-I
目录。
scan-build还有-o选项,它指定HTML报告文件的目标目录。将根据需要创建子目录,以表示分析器的单独“运行”。如果未指定此选项,则会在/tmp
中创建目录以存储报告,如您所知。
另一个有用的选项是-v
(详细),它应该打印分析器可能遇到的任何错误。
最后但并非最不重要的一点是,您应该将分析与调试版本一起使用,其中禁用优化,但更重要的是,不删除符号的位置。
不确定是否有帮助,请告诉我......