我最近正在使用gcov来收集代码覆盖率信息。__gcov_merge_add可以很好地运行可执行应用程序:),但是当我试图加载一个gcov文件时,我得到了这个错误:未知的符号gcov。
然后我在谷歌上搜索,有人说将-lgcov添加到链接标志(LDFLAGS),我确实添加了这个选项,但它不起作用。我还尝试了链接标志中的--coverage选项,无法摆脱这个错误。
有人能在这个问题上提供帮助吗?
谢谢。
发布于 2010-09-15 04:29:14
我也遇到过这个问题,但后来解决了。我只在CPPFLAGS和LDFLAGS中使用--coverage选项。我认为这应该会为你解决编译问题。
不过,共享对象似乎仍然不能生成.gcda文件,我不确定如何解决这个问题。就像你说的,它在可执行文件上工作得很好,但是共享对象似乎有一些问题。
gcov编辑:显然,gcov现在支持共享对象。我昨天做了大量的研究,发现了相互矛盾的答案,所以我邮寄了gcc-帮助列表。请看这里的线程:http://gcc.gnu.org/ml/gcc-help/2010-09/msg00130.html。我还没有尝试根据答案来解决我的问题,但当我这样做时,我会回复的。
覆盖编辑2:共享对象可以使用gcov (或者不使用--选项与gcc一起使用)。这里还有另一个详细的帖子:gcov: producing .gcda output from shared library?。它还引用了上面相同的线程。
https://stackoverflow.com/questions/3709699
复制相似问题