我在 Ubuntu 12.04 上使用 gcov 作为我的 c++ 项目的代码覆盖工具和 gcc(目前是 4.6.3,但很快将成为 4.8),我收到错误无法打开图形文件。这个错误是什么意思?我如何摆脱它以便我可以看到我的代码覆盖率?
我见过这个问题的其他解决方案,最流行的是使用 clang ( gcov: cannot open graph file ) 而不是 gcc,但我不能切换编译器,我必须使用 gcc,所以这对我来说不是一个可行的解决方案。另外,关于 gcov 的文档说它应该与 gcc 一起工作。
另一种解决方案是修复配置文件 ( http://ubuntuforums.org/showthread.php?t=1547252 ),但我不确定该用户说的是什么配置文件,所以如果这也是我的问题,我不知道如何修复它
我的 .gcda 和 .gcno 文件在我的 obj 目录中正确生成
除了进入我编译代码的顶级目录并执行 gcov *.c 之外,我还尝试过 gcov -o 目录/to/obj *.c 和 gcov -o 目录/to/obj *.gcda 和 gcov -o 目录/to/obj *.gcno
但是这些解决方案都不起作用;我仍然收到无法打开图形文件的错误。
如有任何帮助或建议,我们将不胜感激!
最佳答案
上述问题是由于您的源代码所在的目录中缺少.gcda 和.gcno 文件
。
所以我的建议是在你的 .c 所在的源代码中第一次复制 一个特定 .c 文件的 .gcda 和 .gcno 文件,然后执行 gcov filename.c
。
如果你得到覆盖,然后尝试将所有 .gcda 和 .gcno 软链接(soft link)到源代码,如果不想从 obj 目录复制,那么你所说的问题将得到解决
关于c++ - 无法用gcc打开图形文件gcov,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19412365/