首页 文章

无法用gcc打开图形文件gcov

提问于
浏览
1

我在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目录/到/ obj * .c和gcov -o目录/到/ obj * .gcda和gcov -o目录/ to / obj * .gcno

但这些解决方案都不起作用;我仍然得到无法打开图形文件的错误 .

任何帮助或建议将不胜感激!

2 回答

  • 1

    上述问题是由于缺少 .gcda and .gcno file in the directory where your source code present .

    所以我的建议是第一份 one .gcda and .gcno file of particular .c file in your source code where your .c resides then execute gcov filename.c .

    如果你获得了覆盖,那么尝试将所有.gcda和.gcno软链接到源代码,如果不想从obj目录复制那么你说的问题将被解决

  • 1

    让我澄清一些你做错的事情 .

    第一:你总是试图在obj目录路径之后指定* .gcda,* .gcno,* .c等,这是完全错误的 . 你需要做的是将其指定为“-o path / to / obj /”(目录路径)

    您甚至可以指定该特定c / c源文件的gcda文件的路径,并在“-o”标志中指定obj目录的路径以获取该文件的报告 .

    如果您使用gcovr而不是gcov作为报告,那么您可以通过使用"-r -root=ROOT"标志仅指定根目录(src和obj上方的目录)来获取所有类型的报告 . 有关gcovr的详细信息,请参阅此用户guide .

相关问题