在linux安装依赖于python包时,报错libpython.a: conld not read symbols

事件:

我在百度github上下载了Familia相似度计算的开源项目,在liniux服务器上编译的过程中出现libpython.a无法读取符号的错误,错误发生项目编译时生成动态库fimilia.so的过程中。

错误代码:

libpython3.6m.a(abstract.o): 
relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; 
recompile with -fPIC. 
/usr/local/lib/libpython3.6m.a: could not read symbols: Bad value.

解决:

网上各种搜索后,找到错误原因。原来是python在编译的时候没有执行 -fPIC命令,于是参考文献2重新编译python;

终端进入到python源码所在文件夹,终端中输入命令:

cd 源码目录
./configure --prefix=/usr/local --enable-shared CFLAGS=-fPIC
make
make install

重新编译之后发现还是报同样的错误;
又参考文献1;
删除了源码object文件夹下所有的 静态文件,
即.o文件;
依然报错;
这时观察最后错误信息,
查看libpython.o所在的文件夹后发现,
该文件夹中的libpytho是老版本的,
直接删掉,
什么都不改;
再次编译项目,
成功!!!
解决问题真幸福,
晚饭都忘了吃。

  1. 删除.o文件
  2. python编译
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值