Benjamin

静以修身,俭以养德,非澹薄无以明志,非宁静无以致远。
随笔 - 397, 文章 - 0, 评论 - 196, 引用 - 0
数据加载中……

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没有用


posted on 2010-11-30 18:02 Benjamin 阅读(14543) 评论(0)  编辑 收藏 引用 所属分类: linux


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理