今天我在自己的虚拟机上编动态库,.so文件,出错了:
/usr/bin/ld: shili.o: relocation R_X86_64_32 against `__gxx_personality_v0' can not be used when making a shared object; recompile with -fPICshili.o: could not read symbols: Bad value
提示了这么一串让人头疼的信息。
我的资源: shili.cpp shili.h
我的用的命令是:
g++ -c shili.cpp //生成shili.o
g++ -fpic -shared -o shili.so shili.o //生成shili.so
结果 失败了 我的系统是64位的,32位的据说可以,我没试过。
解决方案:
g++ -fPIC -o shili.o -c shili.cpp //生成shili.o
g++ -shared -o shili.so shili.o //生成shili.so
结果成功了——! 我也母鸡为什么。。。。
自己记录上 希望对你也有用。。