前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux下通过user-config.jam指定编译器编译boost

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

作者头像
10km
发布2018-01-03 14:18:48
2.2K0
发布2018-01-03 14:18:48
举报
文章被收录于专栏:10km的专栏10km的专栏

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)。

代码语言:javascript
复制
#定义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 编译及使用》

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年06月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档