当我尝试使用以下方法构建自己的 Python 版本时:
./configure --enable-shared --prefix=/app/vendor/python-dev && make && make install
安装过程中出现错误:
/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 对“.rodata.str1.8”的重定位不能用于生成共享对象;重新编译时使用-fPIC /usr/local/lib/libpython2.7.a: 无法读取符号:坏的值
问题出在链接器尝试使用/usr/local/lib/libpython2.7.a
而不是新编译的库。
如何防止链接器(configure/make)使用系统上安装的Python库?
./configure --enable-shared --prefix=/app/vendor/python-dev && make && make install
(来自于Ubuntu 13.04上的Python-2.7.5 tarball)是有效的。如果错误发生在make
部分,则必须包括完整的make
输出。 - Ayamake
的输出,我也无法做更多事情。 - Aya