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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值