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

Posted

技术标签:

【中文标题】gcov 检测共享对象引用 __gcov_init 隐藏符号【英文标题】:gcov instrumented shared object referencing __gcov_init hidden symbol 【发布时间】:2015-07-22 02:59:53 【问题描述】:

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

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

我的问题是,

[1] 这是否是因为共享库正在引用回主可执行文件?还是静态对象 libgcov.a ?

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于gcov 检测共享对象引用 __gcov_init 隐藏符号的主要内容,如果未能解决你的问题,请参考以下文章

Xcode13 未定义符号:___gcov_flush

9.python 共享引用与单例

具有共享对象引用的两个变量的总大小是多少? [复制]

Libtool 为对象添加前缀,但 gcov 要求它们不带前缀

gcov:从共享库生成 .gcda 输出?

面向对象二次整理(基础,属性引用,方法引用.绑定方法)