relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC的解决方法

relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC的解决方法

PIC就是position independent code,它的作用是代码共享,如果不加-fPIC,则加载.so文件的代码段时,代码段引用的数据对象需要重定位, 重定位会修改代码段的内容,这就造成每个使用这个.so文件代码段的进程在内核里都会生成这个.so文件代码段的copy.
在安装mysql和unbound容易出现这样的错误,解决方法在configure加如下参数--disable-shared --with-pic或者--enable-shared,在这里设置CFLAGS没有用


你可能感兴趣的:(relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC的解决方法)