当我尝试使用以下方法构建自己的Python版本时:
./configure --enable-shared --prefix=/app/vendor/python-dev && make && make install
我在安装过程中看到一些错误:
/ usr / bin / ld:/usr/local/lib/libpython2.7.a(abstract.o):搬迁 制作a时,不能使用R_X86_64_32对.`rodata.str1.8' 共享对象;使用-fPIC /usr/local/lib/libpython2.7.a重新编译: 无法读取符号:错误值
当链接器尝试使用/usr/local/lib/libpython2.7.a
而不是新编译的库时,问题就开始了。
如何阻止链接器(configure / make)使用系统上安装的python库?
答案 0 :(得分:13)
当setup.py
构建目标/usr/local
时,这似乎是make
脚本在搜索路径中始终包含sharedmods
的错误。
你必须手动擦除setup.py
,所以......
./configure --enable-shared --prefix=/app/vendor/python-dev
...首先,然后编辑setup.py
,找到看起来像这样的第442,443和444行......
if not cross_compiling:
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
...并将它们评论出来,看起来像这样......
# if not cross_compiling
# add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
# add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
...然后make
应该有用。
答案 1 :(得分:5)
我用this script解决了:
if(mBallCollide.intersects(mPlayerCollide))
答案 2 :(得分:0)
我刚将/usr/local/lib/libpython2.7.a移至/ tmp