linux下通过user-config.jam指定编译器编译boost

bjam是boost的编译工具,类似于gnu make,boost就是用bjam编译的,bjam很聪明,在编译boost的时候,会自动从系统中寻找合适的编译器来完成boost编译。
但是如果系统中存在多个编译器的时候,就有点麻烦了,比如:
系统的默认编译器是/usr/bin/g++ ,另外我又装了个更高版本的编译器在/usr/local/bin/g++。
在编译boost时,bjam可能会自动找到/usr/bin/g++,而我希望使用/usr/local/bin/g++来编译。
如果不想使用bjam自动找到的编译器来编译boost,就需要指定编译器,为bjam指定编译器是通过定义user-config.jam来实现的,只要定义一个user-config.jam文件,按指定的格式在文件中指定编译器,并将user-config.jam文件的位置告诉bjam(bjam会在$HOME, $BOOST_BUILD_PATH定义的文件夹下寻找user-config.jam)。

#定义boost安装路径
INSTALL_FOLDER=$INSTALL_PREFIX_ROOT/$(install_suffix boost)
echo INSTALL_FOLDER:$INSTALL_FOLDER
remove_if_exist $INSTALL_FOLDER
bzip2_path=$INSTALL_PREFIX_ROOT/$(install_suffix "bzip2")
exit_if_not_exist $bzip2_path "not found $bzip2_path,please build bzip2"
pushd boost-1.58.0
# 指定依赖库bzip2的位置,编译iostreams库时需要
#export LIBRARY_PATH=$bzip2_path/lib:$LIBRARY_PATH
#export CPLUS_INCLUDE_PATH=$bzip2_path/include:$CPLUS_INCLUDE_PATH
# 生成 user-config.jam 指定编译器/usr/local/bin/g++,版本号5.4.0
export BOOST_BUILD_PATH=$(pwd)
echo "using gcc : 5.4.0 : /usr/local/bin/g++ ;" >$BOOST_BUILD_PATH/user-config.jam
cat $BOOST_BUILD_PATH/user-config.jam
# 所有库列表
# atomic chrono container context coroutine date_time exception filesystem 
# graph graph_parallel iostreams locale log math mpi program_options python 
# random regex serialization signals system test thread timer wave
# --without-libraries指定不编译的库
#./bootstrap.sh --without-libraries=python,mpi,graph,graph_parallel,wave
# --with-libraries指定编译的库
./bootstrap.sh --with-libraries=system,thread,filesystem,regex
exit_on_error
./b2 --clean
# --debug-configuration 编译时显示加载的配置信息
./b2 -q --debug-configuration
exit_on_error
# 安装到指定位置
./b2 install --prefix=$INSTALL_FOLDER

popd

说明:
上面的脚本并不完整,脚本中中使用的exit_on_error,install_suffix,remove_if_exist等函数参见我的上一篇博客
《linux下boost编译安装全过程脚本塈bzip2编译安装全过程脚本》

在关于user-config.jam配置文件更详细的说明参见下面参考资料中的boost官方说明《Configuration》
#参考资料

《Configuration》
《boost 1.56.0 编译及使用》

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10km

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值