大佬教程收集整理的这篇文章主要介绍了c – 如何强制编译Boost以使用-fPIC,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
g++ -o <output> <objects> -Wl,-Bstatic -lboost_python -lboost_regex ... -Wl,-Bdynamic -shared <other_opts>
传统上我们使用自己的Boost版本:1.47.这个版本现在很老了,所以我们希望更新.不过奇怪的是,当我使用我的CentOS 7系统上的yum安装必要的对象时,我从gcc中得到以下错误:
relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
嗯,我以为我只是下载最新的boost(CentOS 7安装Boost 1.53),并做自己的构建.这毕竟是一直为我们工作的.我跟着instructions here,但我也有同样的错误.如何强制使用-fPIC即使是它构建的静态库呢?
这对我有帮助1.46.1:
sudo ./bjam cxxflags=-fPIC cflags=-fPIC -a ... install
…是添加额外的标志,如threading = multi或–layout = tagged,以及可选的要构建的项目列表(例如:–with-regex).
注意:我不确定cflags是必要的,但它似乎没有受到伤害.
参考链接:
> https://cmake.org/Wiki/TubeTK/Build_Instructions#Boost_.28optional.29
> http://lists.boost.org/boost-users/2010/07/60682.php
以上是大佬教程为你收集整理的c – 如何强制编译Boost以使用-fPIC全部内容,希望文章能够帮你解决c – 如何强制编译Boost以使用-fPIC所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。