linux GCC环境,boost在编译时未加-fPIC参数,导致如果有共享库使用boost静态库,会报如下错误:
relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

如果使用automake编译,可以通过CPPFLAGS将-fPIC加进去。

针对boost_1_53_0版本,修改tools/build/v2/tools/gcc.jam,注释掉387行:

     #if $(link) = shared

可以打开-fPIC

准备向boost提交这一BUG:
https://svn.boost.org/trac/boost/newticket注:这是默认规则,因为automake编译也不会针对静态库加-fPIC,如果是自己写automake,则可以在Makefile.am中加上:

AM_CXXFLAGS += -fPIC

如果是第三方库的,则使用CPPFLAGS传进去。

附:boost编译安装方法

说明:下面内容仅针对Linux环境(boost官网为:http://www.boost.org/,可从这里下载它的源代码包,这里要求下载.tar.gz包,而非.7z、.zip或bz2包)。

在当前目录下,解压boost库,如:
tar xzf boost_1_52_0.tar.gz
完成后,会在当前目录下新生成一个boost子目录boost_1_52_0,进入boost_1_52_0子目录,可以看到一个bootstrap.sh,执行它:
./bootstrap.sh
执行成功后,会在当前目录下生成一个可执行程序b2,使用它来完成对boost的编译,b2的命令行参数为:
./b2 install --prefix=PREFIX


完整脚本,不需要的组件使用--without去掉,如不需要python:--without-python

#

# install boost

#

printf "\n\033[1;33minstalling boost\033[m\n"

tar xzf $boost.tar.gz

cd $boost

#./bootstrap.sh --show-libraries

./bootstrap.sh --without-icu --without-libraries=python,graph,graph_parallel,mpi,wave

if test $? -ne 0; then

exit 1

fi

./b2 install threading=multi --prefix=$THIRD_PARTY_HOME/boost --without-python --without-graph --without-graph_parallel --without-mpi --without-wave

printf "\n\033[1;33m./b2 install return $?\033[m\n"

cd -

https://svn.boost.org/trac/boost/ticket/8673

最新文章

  1. HTML5中引入的关键特性
  2. Java操作redis简单示例
  3. 魅族手机(魅蓝note)无法作为调试设备连接到mac问题的解决
  4. 使用Js脚本 修改控制IE的注册表相关设置(activex等)
  5. 夺命雷公狗---DEDECMS----28dedecms浏览次数的完成
  6. scala的继承
  7. ios模拟器未能安装此应用程序
  8. ASP.NET中的状态保持(转载)
  9. java的变量
  10. TreeGrid( 树形表格)
  11. J2SE知识点摘记(九)
  12. shell命令批量杀死MySQL连接进程
  13. Tenured 区并发垃圾回收器CMS介绍
  14. ABP学习笔记
  15. 史上最全最强Charles截取手机https协议数据包教程(附上利用此技术制作最近微信比较火的头脑王者辅助外挂)!
  16. pig中查询top k,返回每个hour和ad_network_id下最大两个记录(SUBSTRING,order,COUNT_STAR,limit)
  17. 根据元素类型获取tuple中的元素
  18. ElasticSearch(六)底层索引控制
  19. iOS关于md5 32位加密
  20. wpf 水波进度条 用户控件

热门文章

  1. shell文件相关指令
  2. 在Delphi中使用ShellExecute(handle, 'open', PChar(fname),nil, nil, SW_HIDE)函数应注意的问题
  3. Spark操作算子本质-RDD的容错
  4. spring.jar的下载地址
  5. Hibernate错误及解决办法
  6. SpringBoot_04_热部署
  7. 3_observer
  8. I.MX6 Busybox watchdog
  9. LeetCode:Add Digits - 非负整数各位相加
  10. netsh wlan start hostednetwork