12

我已经在 Ubuntu 桌面上安装了 scan-build/clang 2.9 版。我在那里使用 make 构建我的 C++ 源代码。正如它所说,如果您给出 scan-build 将分析使用 make 构建的项目

scan-build 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 分析单个源文件。但它给出了一个关于头文件的错误,包括 not found 'fatal' error' my.h

铿锵分析将其指向具有头文件的文件夹的选项是什么。

4

1 回答 1

7

至于第二季度,您应该能够使用:

scan-build clang++ -c myfile.cpp

或您的建议:

clang++ --analyze myfile.cpp

但是您需要确保编译器知道所有包含和库(您应该能够成功地将 myfile.cpp 编译为目标文件而无需分析)。这尤其包括-I目录。

scan-build 还有一个 -o 选项,它指定 HTML 报告文件的目标目录。将根据需要创建子目录来表示分析器的单独“运行”。/tmp如您所知,如果未指定此选项,则会在其中创建一个目录来存储报告。

另一个有用的选项是-v(verbose),它应该打印分析器可能遇到的任何错误。

最后但并非最不重要的一点是,您应该在禁用优化的调试版本中使用分析,但更重要的是,在未去除符号的情况下。

不确定是否有帮助,请告诉我...

于 2013-11-05T09:23:31.270 回答