1. lcov安装
sudo apt-get install lcov
此时安装的lcov版本号是1.13。
2. lcov使用
生成覆盖率关联的库在编译时需要加上以下标志位
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
生成可执行文件后需要运行可执行文件./a.out
此时会在/CMakeFiles/*.dir/目录中生成.gcda和.gcno文件。
运行以下指令生成info文件,--directory之后的参数指定了查找.gcda文件的路径,当项目中的gcda文件不在当前路径时需要修改。
lcov --directory . --capture --output-file a.out.info
随后根据以下指令生成可视化的文档,其中results是生成报告的路径:
genhtml -o results a.out.info
3. 遇到的问题
(1)version ‘B02*’ ,perfer ‘A75*'
版本号不一致,可以尝试在cmake文件中手动指定gcc的版本。
(2)can’t locate tiny.pm(或者其他模块)
当缺少的模块比较少的时候可以去网站查找报错中推荐查找的模块手动下载,https://metacpan.org/pod
下载后在文件夹内执行以下指令
perl Makefile.PL
make
sudo make install
也可以通过以下方式下载:
安装cpan
sudo perl -MCPAN -e install Spiffy
下载perl模块
sudo cpan install Module::Runtime
如果希望深入研究gcov工作的逻辑,可以去以下网站。
Linux平台代码覆盖率测试-GCC如何编译生成gcov/gcov-dump程序及其bug分析 第2页_Linux编程_Linux公社-Linux系统门户网站