不折腾好环境不学习系列 Windows(2)—— gcovlcov & gcovr

不折腾好环境不学习系列 Windows(2)—— gcovlcov & gcovr,第1张

             (1) gcov是 MinGW 自带的,在 MinGW\bin\gcov.exe,编译时加入 “-fprofile-arcs -ftest-coverage -g -O0” 参数(添加这些参数的办法详见我之前的文章  不折腾好环境不学习(1)—— VSCode 使用cmake &boost - ),就会生成类似 linux 中生成的 .gcno &.gcda 文件了 

             (2) 这时候类似 linux *** 作,进入 “CMakeFiles/p_test.dir/src” 目录,运行 “gcov p_test.gcno”,gcov 部分的工作就结束了

            (1) lcov 其实就是几个 perl 语言写得脚本,为了将 lcov 移植到 windows 环境里,许多人已经在这几个 perl 脚本调整上做了很多工作,比如  GitHub - valbok/lcov: LCOV for Windows  和  Code coverage - HTML reports using LCOV on windows ,但是这些现成的脚本在我实际实践时都会有很多问题。

            (2) lcov.bat, lcov.perl, geninfo.perl 遇到不同系统移植带来的 bug ,通过简单浏览一下,不难解决问题,但是 genhtml.perl 过于复杂,待我初略学习 perl 语言一番后再来完善

    1. 在上一种办法搞到最后还是因为不会 perl 语言,没改好 genhtml.perl 而不能生成 coverage.html 因此快要崩溃的时候,我忽然想到一个问题—— “既然 lcov 只是一个 perl 语言写的脚本,那么为什么就不可能有 python 写的 lcov 脚本呢?!”

    2. 抱着这个想法我去Google上搜,调整了 3 次关键词之后终于发现了一个 python 版本的脚本—— gcovr ! 这个脚本只需要编译时加入 “-fprofile-arcs -ftest-coverage -g -O0” 参数,从而能够生成 .gcno &.gcda 文件就可以了!  官方说明如下:

注意要在项目的根目录下运行 gcovr 命令!

一、运行命令,如:gcc , gcov,看一下报错提示,如果说命令未找到或不可识别的命令,则要进一步检查

二、运行rpm -qa|grep gcc检查,即可确认,是否安装了gcc包!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7090471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存