1. 今天在centos6.4系统上编译so,当so引用其他so或者 .a 静态库时, 会出现如下错误(以前未遇到过,与编译器相关,有的编译器编译时会自动将fPIC选项加上):
/usr/bin/ld: /home/gavin/local/json/lib/libjson.a(json_object.o): relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC
解决: 重新编译第三方库, 在configure文件中找到相关CPPFLAG 或者 CCFLAG变量,在其后加上-fPIC,重新生成Makefile,然后编译安装即可。