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,然后编译安装即可。

posted on 2014-02-18 15:09  行健  阅读(87)  评论(0编辑  收藏  举报