1. 下载最新版的boost

wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz

2. 解压

3. 执行如下脚本

functionmake_boost() {

deploy=$(pwd)

$deploy/b2 stage --toolset=gcc-4.9 --stagedir="$deploy/gcc" \

architecture=x86 address-model=64\

link=static runtime-link=static threading=multi \--without-python

#--with-system --with-thread --with-date_time

}functionmake_issue() {

gcc_path=/opt/rh/devtoolset-3/root/usr/bin/g++version=$($gcc_path -dumpversion | awk -F'.' '{printf("%s.%s\n", $1, $2);}')

echo"using gcc : $version : $gcc_path ;" > tools/build/src/user-config.jam

}

make_issue

make_boost

第一步是为了启用4.9的编译器。

make的参数解释如下

下面对上面的bjam的各个参数进行解释说明:

1. stage/install:

stage表示只生成库(dll和lib),install表示附带安装功能,会生成包含头文件的include目录。推荐使用stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录(H:\boost\boost_1_55_0\boost,只比include目录多几个非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间

2. toolset:

表示编译器工具,默认自动检测,安装了多个编译器的时候可以使用此属性。可选的如borland、gcc、msvc(VC6)、msvc-12.0(VS2013)、msvc-14.0(VS2015)等,我安装的是VS2008,所以是msvc-9.0(如果你是VS2005,可以使用msvc-8.0 VS2010是msvc-10.0)

3. stagedir/prefix:

stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。推荐给不同的IDE指定不同的目录,例如这里是VS2008对应的是 H:\boost\boost_1_55_0\vc90

如果使用了install参数,那么还将生成头文件目录,vc90 对应的就是 H:\boost\boost_1_55_\boost\bin\vc90\include\boost_1_55_0\boost

4. architecture

表示架构,也就是你的CPU架构,所以是x86

5. address-model

地址长度,32表示编译32位的库文件,64表示编译64位的库文件

6. link

生成动态链接库还是静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘

7. runtime-link

动态还是静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译

GCC下,在生成动态库(–link=shared)时,就不允许进行静态链接到C运行库(或C++标准库)

8. threading

单线程还是多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式

9. debug/release:

编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译

10. without/with:

选择不编译/编译哪些库。这里我们指定要编译哪些库,就使用了witth,注意写法:--with-thread --with-date_time,同样,如果不想编译哪些库,可以类似写法--without-thread

参考资料

https://blog.csdn.net/yzf279533105/article/details/77658367

linux boost 64位编译,Boost在Linux 64 下的编译相关推荐

  1. 64位Windows2003 Enterprise sp2 上64位Oracle10.2.0.1升级到Oracle10.2.0.3具体步骤

    64位Windows2003 Enterprise sp2 上64位Oracle10.2.0.1升级到Oracle10.2.0.3具体步骤 错误描述:64位的Oracle10.2.0.1版本在64位W ...

  2. WindowsServer2012 R2 64位中文标准版(IIS8.5)下手动搭建PHP环境详细图文教程(二)安装IIS8.5...

    //来源:http://www.imaoye.com/Technology/WindowsServer2012R264IIS85.html 阿里云服务器ECS Windows Server 2012 ...

  3. oracle10 64位odbc,图文教你64位win10添加oracle odbc驱动时提示无法加载oracle如何解决...

    现在电脑已成为我们工作生活的一部分,相信大家在操作电脑时一定会遇到这样那样的问题,64位win10添加oracle odbc驱动时提示无法加载oracle如何解决这个问题就是我们经常会遇到的,这样的问 ...

  4. 在安装project2010 64位时提示 “无法安装64位office,因为已有32位版本”解决方法

    在安装project2010 64位时提示 "无法安装64位office,因为已有32位版本"解决方法 参考文章: (1)在安装project2010 64位时提示 "无 ...

  5. 解决连接oracle报错 尝试加载Oracle客户端库时引发BadImageFomatException。如果在安装64位Oracle客户端组件的情况下以32位模式运行,将出现此问题的报错。

    解决连接oracle报错 尝试加载Oracle客户端库时引发BadImageFomatException.如果在安装64位Oracle客户端组件的情况下以32位模式运行,将出现此问题的报错. 参考文章 ...

  6. windows 下编译64位的 Boost 1. 61. 0

    一直以来都是在Win32环境下Build和使用boost,但现在基本上每天都在64位Win7下工作,所以很有必要把这几天的经验总结下来. 1. 下载并解压boost 1.61.0 压缩包 2. 解压并 ...

  7. arm linux 64位,微软准备让Linux作为64位ARM Hyper-V客户机运行

    原标题:微软准备让Linux作为64位ARM Hyper-V客户机运行 虽然微软的Hyper-V虚拟化管理程序和他们的Azure云在很大程度上是以x86_64为中心的,但随着Linux 5.13内核的 ...

  8. 手动给64位centos6.3版本linux的firefox安装Adobe flash player

    1. 从Adobe的官网下载Adobe Flash 播放器,网址是:http://get.adobe.com/cn/flashplayer/ 2. 在版选择框里选择<.tar.gz,适用于其它l ...

  9. 查看系统架构是32位还是64位--用Enki学Linux系列(15)

    最简单的方式是执行: $ uname -m 这将输出 x86_64 或者 i386/i586/i686. 你可以使用-a参数获得更多内容: $ uname -a 32位系统的结果: Linux XXX ...

  10. 锁定文件失败 打不开磁盘“D:\Documents\Virtual Machines\Red Hat Enterprise Linux 6 64 位\Red Hat Enterprise Linux

    问题描述: 在oracle数据库添加数据文件时,发现失败,一直执行中.最后发现虚拟机已经宕机. 重启虚拟机时,报错如下: 解决过程: 首先,发现D盘慢了,使用了100%,删除一些无用的文件,移动一些大 ...

最新文章

  1. express给html设置缓存,webpack + express 实现文件精确缓存
  2. 用python解“BCD解密”问题
  3. Tinyhttpd源码--实现http服务器
  4. P1459 三值的排序 Sorting a Three-Valued
  5. 微软Cloud+AI本地化社区贡献指南
  6. 洛谷P1757 通天之分组背包 [2017年4月计划 动态规划06]
  7. MySql、PowerDesigner、JDBC 的关系
  8. 【python基础知识】如何查看pycharm中已经安装的插件
  9. 模板方法模式(模板方法设计模式)详解——小马同学@Tian
  10. Android开源项目库汇总
  11. Mysql(下载、安装、环境配置详细图文)
  12. 测试银行卡号必看(长度限制及卡号字符类型总结)
  13. Python代码cProfile耗时分析及可视化
  14. PMP项目管理备考资料都有哪些?
  15. [深度学习] - 网络模型训练过程的 loss 变化分析 (loss / val_loss / test_loss)
  16. 计算机原理电梯控制系统设计,《智能电梯控制系统的实现》-毕业论文(设计).doc...
  17. 【软件推荐】synctoy 本机同步的最好的软件 本机不同目录 本机硬盘与移动硬盘同步
  18. cad拉伸怎么用_【cad比例缩放教程】cad缩放怎么用?
  19. Linux DBUS总线
  20. 剑指offer 专项突破版 73、狒狒吃香蕉

热门文章

  1. flask mysql环境配置_Flask干货:访问数据库——Flask-SQLAlchemy初始化
  2. java 推送消息页面_Notification API,为你的网页添加桌面通知推送
  3. api如何使用_记录API:技术作家和工程师指南
  4. nacos 公共_Nacos数据模型
  5. php定界符号,PHP定界符的使用及注意事项
  6. invalid signature_php,微信开发JSSDK遇到的问题 config:invalid signature
  7. php 受保护类,php中如何在外部修改类的私有或受保护属性值
  8. Linux中read接收用户输入
  9. Swift 数组、字典
  10. ITM_win_agentCPU内存占用较高