You need to enable JavaScript to run this app. 多C++文件场景下如何使用gcov生成代码覆盖率报告
优惠活动
大模型
产品
解决方案
定价
更多

多C++文件场景下如何使用gcov生成代码覆盖率报告

多文件C++项目gcov覆盖率报告生成方案

要生成gcov覆盖率报告,编译、链接两个阶段都需要添加覆盖率编译参数,这是分目标文件编译方案失败的核心原因,完整操作步骤如下:

1. 编译生成带覆盖率标记的目标文件

编译时添加-g(输出调试信息)、-O0(关闭编译优化,保证覆盖率统计准确)、--coverage(开启覆盖率统计支持)参数:

  • 编译one.cpp:g++ -c -g -O0 --coverage one.cpp -o one.o
  • 编译main.cpp:g++ -c -g -O0 --coverage main.cpp -o main.o
    编译完成后每个.o目标文件会对应生成.gcno后缀的统计基础文件。

2. 链接生成可执行文件

链接阶段必须同样添加--coverage参数,不能省略:
g++ -g -O0 --coverage one.o main.o -o cov_test

3. 运行可执行文件生成覆盖率统计数据

./cov_test
运行完成后每个源文件会对应生成.gcda后缀的执行统计数据文件。

4. 生成gcov覆盖率报告

直接对源文件执行gcov命令即可生成文本格式的覆盖率报告:

  • 生成one.cpp的覆盖率报告:gcov one.cpp
  • 生成main.cpp的覆盖率报告:gcov main.cpp
    生成的.gcov文件中会标注每一行代码的执行次数,未被执行的代码行前会标记#####。

内容的提问来源于stack exchange,提问作者Cod3r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 19:06:04