当前位置: 代码迷 >> 综合 >> relocation R_X86_64_32 against `.rodata.str1.8‘ can not be used when making a shared object; recompi
  详细解决方案

relocation R_X86_64_32 against `.rodata.str1.8‘ can not be used when making a shared object; recompi

热度:24   发布时间:2024-03-09 21:58:11.0

原问题:

/usr/local/lib/libpython3.7m.a(call.o): relocation R_X86_64_32 against `.rodata.str1.8’ can not be used when making a shared object; recompile with -fPIC

大意就是目前这个python3.7的库是个静态库,不是所需要的动态库,需要重新编译一遍python

解决方法

首先cd到你的python3.7的解压文件夹下

然后配置并编译

$ ./configure --prefix=/usr/local/  --enable-shared CFLAGS=-fPIC
$ make clean
$ make && sudo make install

现在,你可以在你的/usr/local/lib目录下找到该动态库了(之前只有一个静态库)

然后添加到链接目录即可

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/lib/x86_64-linux-gnu
  相关解决方案