【发布时间】:2013-06-03 22:17:43
【问题描述】:
当我尝试使用以下方法构建自己的 Python 版本时:
./configure --enable-shared --prefix=/app/vendor/python-dev && make && make install
我在安装过程中看到一些错误:
/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): 重定位 R_X86_64_32 对 `.rodata.str1.8' 制作时不能使用 共享对象;使用 -fPIC /usr/local/lib/libpython2.7.a 重新编译: 无法读取符号:错误值
当链接器尝试使用/usr/local/lib/libpython2.7.a 而不是新编译的库时,问题就开始了。
如何防止链接器(配置/制作)使用系统上安装的 python 库?
【问题讨论】:
-
./configure --enable-shared --prefix=/app/vendor/python-dev && make && make install为我工作(来自 Ubuntu 13.04 上的 Python-2.7.5 tarball)。如果错误发生在make部分,则必须包含make的完整输出。 -
这是唯一的错误。它也只是对其他模块重复。我正在使用 2.7.4 压缩包。但我的机器上有 2.7.4,静态编译(我猜没有 -fPIC)。
-
当然,但是错误的原因会在构建的早期发生,因此如果没有更多信息就无法诊断。看看this,以及后续。我不确定这是否是同一个问题,但如果没有看到
make的输出,我将无能为力。 -
这里是日志pastebin.com/ZBUp2cnd。是的,这篇文章提到了同样的问题。但没有解决方案。
-
我的解决方案是否有效?