首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法生成*.c.gcov文件

无法生成*.c.gcov文件
EN

Stack Overflow用户
提问于 2011-11-10 23:25:57
回答 2查看 1.7K关注 0票数 2

我有以下结构:

代码语言:javascript
复制
Source_code/build/unix/Makefile
Source_code/code/Lib/src/lib1/a.c

在gcc编译选项中提到了-fprofile-arcs-ftest-coverage选项。它成功生成了a.gcdaa.gcno文件。当给出以下选项gcov a.c时,它会正确地给出所执行的行的统计信息。

但是它无法正确地生成a.c.gcov文件,它只包含/* EOF */

它抛出以下消息:

代码语言:javascript
复制
../../code/lib/src/lib1/a.c:creating 'a.c.gcov'
../../code/lib/src/lib1/a.c:cannot open source file

请让我知道如何生成a.c.gcov文件。

EN

回答 2

Stack Overflow用户

发布于 2014-11-05 09:57:07

在编译代码的文件夹中运行gcov对我来说很有效。

在.gcov文件的顶部,它说明了完整的文件路径。示例:

代码语言:javascript
复制
         -:    0:Source:tmp.c
         -:    0:Graph:tmp.gcno
         -:    0:Data:tmp.gcda
         -:    0:Runs:1
         -:    0:Programs:1
         -:    1:#include <stdio.h>
         -:    2:
         -:    3:int main (void)

如果它位于不同的文件夹中,即/path/tmp.c,请执行以下操作:

代码语言:javascript
复制
gcov ./path/tmp.c -o ./path/tmp

https://gcc.gnu.org/ml/gcc-help/2010-04/msg00080.html

票数 1
EN

Stack Overflow用户

发布于 2014-09-26 22:20:39

在无法找到源文件的情况下,建议在编译过程中使用绝对路径。而不是使用"../“。

其次,您可以尝试复制gcno和gcda文件以匹配"../../code/lib/src/lib1/a.c“。

或者修复构建规则,以确保未应用损坏的相对路径(如../../)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8081910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档