帮助与接头failer:.gnu.linkonce.t
-
11-09-2019 - |
题
我在链接使用gcc 3.2.3 binutils的2.18的共享库的麻烦。当我尝试,我得到以下错误链接库:
.gnu.linkonce.t _...在节.RODATA引用:在丢弃部分定义.gnu.linkonce.t ...
我已经做了谷歌搜索就这个问题和大多数地方相当数量似乎表明这是一个回归的binutils中引入2.17,后来固定50年2月18日,但我很好奇,如果任何人知道,如果有任何特定的解决方法而不需要接触的binutils和gcc问题。
感谢。
解决方案
这被证明是一种奇怪的结果,其中该系统不匹配的gcc用不同的binutils。的/ usr /斌/ GCC正在使用(3.2.3)和/ usr / local / bin中/ LD正在与它一起使用由于在路径/ usr / bin中的前面的/ usr / local / bin中之中。当我们切换,从而在/ usr / bin中是在路的前方,适当的/ usr / bin中/ LD被称为(binutils的2.14),这似乎已经解决了这个问题。
其他提示
这个错误被发现并被此处报道 GCC bugzilla中一>,一个专注于臭虫小测试用例中,我发现它是非常有帮助不浪费时间的意见提供了依据。这种错误是固定起始GCC 3.4.6
。
我在使用GCC 3.3.1
与binutils 2.15.92
和binutils 2.17.50
有这个问题,都没有工作。所以,对我来说这显然不是这使问题GCC
和binutils
版本的组合。
如果您要使用旧版本的GCC
您可以使用由H.J.
提供此补丁,并做手工然后再重建旧GCC
。
检查在所提供的链接,示出了用于修复的确切DIFF的附着物。
我已经做了它自己和测试,它成功地工作,修补GCC 3.3.1
与第一修复“无COMDAT基”,重建它并与binutils 2.15.92
和binutils 2.17.50
使用它。