gcov最终链接失败

Jai*_*thy 3 gcc gcov

在使用gcov支持编译我的项目时,我面临以下错误

以下是编译时的标志信息

编译器标志:

CXXFLAGS="-Wno-deprecated -g -ggdb -fprofile-arcs -ftest-coverage -fPIC"
Run Code Online (Sandbox Code Playgroud)

链接器选项:

LINK_CMD="gcc -fprofile-arcs -fPIC"
Run Code Online (Sandbox Code Playgroud)

以下是版本信息:

gcc版本:

gcc版本4.1.2 20080704(Red Hat 4.1.2-44)

gcov版本:

gcov(GCC)4.1.2 20080704(Red Hat 4.1.2-44)

错误:

DSO/usr/bin/ld引用/usr/lib/gcc/x86_64-redhat-linux/4.1.2/libgcov.a(_gcov.o)中的隐藏符号`__gcov_init':最终链接失败:输出上不可表示的部分collect2:ld返回1退出状态

你能帮我摆脱这个问题吗?

Ogr*_*m33 5

我已经能够使用以下步骤在我自己的代码中解决此问题:

  1. make clean(删除我的所有.o和lib文件).
  2. 确保每个源文件都有正确的选项(-fprofile-arcs -ftest-coverage).
  3. 确保将每个共享库的源文件编译为指定-lgcov
  4. 确保我将可执行文件与-lgcov链接.

另请参阅此答案此博客文章.