尝试使用gcov编译代码覆盖的代码。出现以下错误:
隐藏符号`__gcov_merge_add'in /usr/lib/gcc/i686-redhat-linux/4.4.4/libgcov.a(_gcov_merge_add.o)是 由DSO / usr / bin / ld引用:最终链接失败:不可代表 关于输出collect2的部分:ld返回1退出状态
为gcov添加了以下编译器选项:
-O0 -fprofile-arcs -ftest-coverage -Xlinker -zmuldefs
和ld标志:
-fprofile-generate -fprofile-arcs
并与库-lgcov
请建议。
答案 0 :(得分:0)
我们可以使用简单的--coverage -O0
编译器选项启用代码覆盖,最后使用-lgcov
链接RHEL 6. *版本。
然而,与debian相同,我们不得不使用-O0 -fprofile-arcs -ftest-coverage -Xlinker -zmuldefs
来启用代码覆盖的二进制文件。
答案 1 :(得分:0)
此问题的解决方案是
-fprofile-arcs -ftest-coverage
进行编译-fprofile-arcs -lgcov
链接当我在链接时不使用-fprofile-arcs
时,我也遇到了同样的错误。