背景:centos系统,使用eclipse生成c++动态库
问题:提示png库relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC
解决方法:重新编译png库。
方法一:网上找的方法,时灵时不灵。。。
cd libpng-1.2.32/
./configure
打开Makefile文件,在CFLAGS=... 一行最后增加 -fPIC,保存退出
make
make install
然后可以重新生成你自己的动态库。
参考:https://blog.csdn.net/zangcf/article/details/21607855
补充:注意某些库(比如libmemcached)的Makefile文件中有CPPFLAGS参数设置,如需编译c++动态库时在CPPFLAGS后增加-fPIC
方法二:
cd libpng-1.2.32/
./configure --disable-shared --with-pic 或者 ./configure --enable-shared
make
make install
重新生成你自己的动态库。
参考:http://www.cppblog.com/zhangyq/archive/2010/11/30/135091.aspx