可以让 gcc/gcov 将覆盖率统计信息输出到源文件夹以外的位置吗?

Posted

技术标签:

【中文标题】可以让 gcc/gcov 将覆盖率统计信息输出到源文件夹以外的位置吗?【英文标题】:Can gcc/gcov be made to output coverage stats to a location other than the source folder? 【发布时间】:2010-11-29 03:15:49 【问题描述】:

当使用带有 -fprofile-arcs 和 -ftest-coverage 的 gcc 时,当生成的可执行文件终止时,它会尝试在与用于编译可执行文件的 .o 文件相同的位置创建 .gcda 输出文件。当我在与我构建的机器不同的机器上运行时,这很不方便——有什么办法可以改变这种行为吗?

【问题讨论】:

【参考方案1】:

您可以使用环境变量GCOV_PREFIX。在"cross-profiling" section 下的文档中提到了它,它本身在-fprofile-arcs 的文档中被引用。

【讨论】:

如果我想将可执行文件从“编译机”移动到“目标机”,将执行程序并测量覆盖率:我是否必须移动生成的“*.gcno”文件由编译器(例如为我的源文件 main.cpp 生成的“main.cpp.gcno”)?

以上是关于可以让 gcc/gcov 将覆盖率统计信息输出到源文件夹以外的位置吗?的主要内容,如果未能解决你的问题,请参考以下文章

无法在 PyDev 中使用 Coverage,“文件没有统计信息”

单测增量代码覆盖率统计方案

如何将计算列添加到源 DataFrame

Amazon Cloudfront - 将 CDN 域名传递到源服务器

无法将本机 .dll 引用添加到源生成器项目

shell 常用