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_FOLDERpopd

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

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

参考资料

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

linux下通过user-config.jam指定编译器编译boost相关推荐

  1. linux配置指定ip访问指定端口号,操作系统linux和dos linux下通过iptables只允许指定ip地址访问指定端...

    一篇 : linux下通过iptables只允许指定ip地址访问指定端口的设置方法 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的规则 iptables -X#清 ...

  2. mysql5.5.8编译安装_Mysql应用linux下mysql 5.5.8 源码编译安装

    <MysqL应用linux下MysqL 5.5.8 源码编译安装>要点: 本文介绍了MysqL应用linux下MysqL 5.5.8 源码编译安装,希望对您有用.如果有疑问,可以联系我们. ...

  3. Linux下的vim编辑器与gcc编译器及静动态库的制作

    1.vim编辑器的使用: (1)vim的三种模式: 命令模式:打开文件默认进入命令模式 编辑模式:需要输入一些命令切换到编辑模式 末行模式:在末行模式可以输入一些命令 命令模式aios和AIOS都可以 ...

  4. 怎么在linux指定目录下查找文件夹下,Linux下如何使用find命令指定目录查找文件...

    在进行Linux命令操作的时候,有时会搜索出许多目录,而这些目录又不是我们所需要的,这时就可以将其忽略.下面学习啦小编就教大家如何使用find命令忽略子目录. 使用find命令在linux系统中查找文 ...

  5. linux出站入站端口维护,linux下如何用iptables开放指定端口_网站服务器运行维护,linux,iptables,端口...

    win10系统老是弹出垃圾广告怎么办_网站服务器运行维护 win10系统老是弹出垃圾广告的解决方法是:1.打开控制面板,进入Internet选项:2.在打开的Internet属性窗口中,切换到[隐私] ...

  6. Linux下通过Shell脚本快速进入指定目录

    现在有一个现实的场景: 每一次打开Linux,都是在 目录下: 我最近想练习网络的代码,所以创建了一个目录,路径为: 可以看到,这个路径很长,如果没一次都通过cd /home/admin/linex/ ...

  7. 在keil上编译linux下的STM32裸机工程 arm 编译器介绍

    Keil5.15使用GCC编译器编译STM32工程 https://blog.csdn.net/lan120576664/article/details/46806991 linux中keil如何编译 ...

  8. Linux下静态库和动态库的编译连接

    http://blog.sina.com.cn/s/blog_4090ba590100t3nu.html .a文件 gcc -c test.c  ar rc libtest.a test.o  ran ...

  9. linux下下载openwrt源码,OpenWrt下载编译

    不想啰嗦直接肝,依次执行: git clone git://github.com/openwrt/openwrt.git cd openwrt ./scripts/feeds update -a ./ ...

最新文章

  1. php函数:register_shutdown_function
  2. emacs参考资料整理
  3. openresty nginx升级版
  4. 成功解决TypeError: a bytes-like object is required, not 'str'
  5. 计算器服务端/客户端
  6. 16行代码AC——例题6-4破损的键盘(Broken Keyboard,UVa 11988)——解题报告
  7. SVN本地代码未提交而被覆盖
  8. python 获取文件大小_第41p,超级重要,Python中的os库
  9. 【ES9(2018)】for await...of
  10. autocad 如何摆正显示_如何在 VB 中连接 AutoCAD
  11. set和muliset
  12. 职业生涯中的选择时机非常重要,各种条件还没成熟时的时候,因为诱惑而贸然行事,只会得到适得其反的结果...
  13. Ubuntu系统下通过命令查找文件或文件夹
  14. action support分析
  15. 提高软件测试能力的19条建议
  16. 利用numpy自带的polyfit和polyval函数进行回归分析
  17. 计算机上什么键有存储,电脑保存的快捷键是什么_电脑知识
  18. 2021年N1叉车司机复审考试及N1叉车司机证考试
  19. android 类似qq空间微博微信九宫格图片
  20. MBRGPT硬盘分区类型属性详解(Win下更改/设置OEM/恢复分区方法)

热门文章

  1. Hdu 2430 Beans (数据结构_单调队列)
  2. CCNU ACM 2016夏季集训·最长递增子序列(LIS)
  3. 点云配准 3- icp-交互式ICP点云配准
  4. 输入关键词查询论文例句网站
  5. Unity在OpenGL模式下Shader编译报错
  6. R 多元相关与回归分析
  7. 【Pygame实战】单机游戏《赛车计划》评测:不一样的汽车题材游戏,除了技术还看运气~(附代码)
  8. 我的操作系统探索之路----------------进程篇(1)
  9. 插件 | 蛋白序列集合功能注释快速完成 - Quick Protein Anno
  10. 一次调频二次调频matlab仿真,一种改进型VSG二次调频控制器及控制方法与流程