Gcov/Lcov生成覆盖率遇到的一系列问题(ubuntu18.04)

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系统门户网站

你可能感兴趣的:(linux,ubuntu,perl,单元测试,代码覆盖率)