c++ - gcov 检测共享对象引用 __gcov_init 隐藏符号

标签 c++ linux gcc gcov

我有一个主要的 Linux 可执行文件,该可执行文件正在使用动态共享对象中的一些函数。当我检测共享对象并尝试检测和编译主可执行文件时,它给了我一个如下所示的错误。

隐藏符号:/usr/lib/gcc/x86_64-linux-gnu/4.8/libgcov/libgcov.a(_gcov.o)中的__gcov_init被DSO引用。

我的问题是,

[1] 这是否是由于共享库引用回主可执行文件而发生的?或静态对象 libgcov.a ?

[2] 我该如何克服这个问题?在 Windows 中,共享对象无法引用回主可执行文件,但在 Linux 中却发生了这种情况。

最佳答案

我谈到的共享库没有与“lgcov”进行检测和链接。我们需要与该库链接的所有库[如果存在为检测构建而编译的单个目标文件]并进行检测。

这解决了我的问题,并且我能够检测我的代码库。

关于c++ - gcov 检测共享对象引用 __gcov_init 隐藏符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31553103/

相关文章:

c - 为什么编译器警告并忽略对我的函数 strlen 的调用?

c++ - 使用 recv() 和 vector<unsigned char> 的更优雅的方式

c++ - "int &&"和 "auto &&"之间的不同行为

linux - 如何打印 bash 的真实执行路径,即类似于 type -a 的 type -f?

linux - Unix 递归替换文件中的反斜杠

c++ - GCC 6.x 关于 lambda 可见性的警告

c++ - 综合 gnu make/gcc 教程

C++ 等同于 sscanf?

c++ - XML Lite 解析问题 - 解析时忽略无效数据

linux - 系统脚本失败