编译错误IcePy(Ice 3.3.1):对本地符号的重定位

时间:2010-07-29 15:24:41

标签: python linker compilation

我尝试构建IcePy时遇到问题(来自Ice 3.3.1)(对于python 2.4.4)。 编译,测试和安装Ice本身(cpp版本)是可以的,但是当我尝试构建python接口(“py”目录)时,我收到以下错误(抱歉截断路径):

.../lib/python2.4/config/libpython2.4.a(abstract.o):
relocation R_X86_64_32 against `a local symbol' can not be used when making
a shared object; recompile with -fPIC
.../lib/python2.4/config/libpython2.4.a: could not read symbols: Bad value
collect2: ld returned 1 exit status

有人能够解释一下重定位的这个问题是什么意思(或者至少给我一个链接)?感谢您的帮助。即使您对Ice一无所知,也欢迎您对错误消息发表评论。 (当然编译行已经包含-fPIC所以“使用-fPIC重新编译”对我没有帮助......)

1 个答案:

答案 0 :(得分:1)

abstract.o很可能使用-fPIC编译,所以建议链接器给你的是正确的。

返回构建日志,并在构建-fPIC时验证libpython2.4.a是否存在。请注意,-fPIC本身需要libpython2.4.a,而不仅仅是IcePy。

如果 ,那么你在GCC中发现了一个错误(这有点不太可能)。

您可以了解链接器和重定位herehere