BOOST1.54简化编译
1、设置环境变量
BOOST_ROOT
E:\Projects\00.CODE.SDK\boost_1_54_0
2、运行bootstrap.bat
3、运行:
bjam install --toolset=msvc-9.0 --without-python --prefix="E:\SDK\boost_1_54_0\bin\vc9" link=static runtime-link=shared threading=multi debug release
附录:
节选自某人博客
一、bjam每个参数的含义,请务必仔细看完:
stage/install:stage表示只生成库(dll和lib),install还会生成包含头文件的include目录。(E:\SDK\boost_1_54_0\bin\vc9\include\boost-1_54,比原BOOST目录下include目录多几个非hpp文件,略小),可以直接使用。
toolset:指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。
without/with:选择不编译/编译哪些库。这可以根据各人需要选择,默认是全部编译。需要注意,如果选择编译python的话,是需要python语言支持的,应该到python官方主页http://www.python.org/下载安装。
stagedir/prefix:stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。推荐给不同的IDE指定不同的目录,如VS2008对应的是E:\SDK\boost_1_54_0\bin\vc9\,VC6对应的是E:\SDK\boost_1_54_0\bin\vc6,否则都生成到一个目录下面,难以管理。如果使用了install参数,那么还将生成头文件目录,vc9对应的就是E:\SDK\boost_1_54_0\bin\vc9\include\boost-1_54\boost,vc6类似。
build-dir:编译生成的中间文件的路径。默认在目录(BOOST_ROOT/bin.v2)下,等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。
link:生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘。
runtime-link:动态/静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译。一般link只选static的话,只需要编译2种组合即可,即link=static runtime-link=shared和link=static runtime-link=static。
threading:单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。
debug/release:编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。
如果图省事,不想了解这么多,那么有简单的方法,可以使用命令:
bjam --toolset=msvc-9.0 --build-type=complete
直接指定编译器以完全模式编译即可,这样可以满足今后的一切使用场合,但同时带来的后果是:
1、占用3G以上的硬盘空间
2、占用若干小时的编译时间
3、头文件和库文件存放于C:\Boost
4、生成的很多文件可以永远也用不上
二、配置
include目录:E:\SDK\boost_1_54_0\bin\vc9\include\boost-1_54
library目录:E:\SDK\boost_1_54_0\bin\vc9\lib
添加到IDE相应的路径下面即可。
转载于:https://www.cnblogs.com/albertwang/p/3347386.html
BOOST1.54简化编译相关推荐
- VS2013下Boost1.68的编译
/******************************************************************* boost的编译 ********************** ...
- boost1.7 centos7编译
下载后解压 tar zxvf xxxx.tar.gz 运行编译 ./bootstrap.sh ./b2 -j 5 ./b2 install ldconfig 在usr/local/include/bo ...
- Linux随笔16-主从DNS服务搭建以及智能DNS服务搭建、基于CentOS7.6编译安装MySQL-5.7.32
Contents 1. DNS主从服务器搭建 1.1. DNS简介 1.2. DNS主从服务搭建 1.2.1. 主DNS服务器配置 1.2.2. 从DNS服务器配置 1.2.3. Web服务器准备 1 ...
- Linux下make使用gcc编译,Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入)
一.确认已经装好了GCC和Make的软件包 可以使用whereis命令查看: 如果whereis gcc和whereis make命令有结果,说明安装了这两个软件,可以继续往下做. 二.使用GCC ...
- Linux 之旅 21:编译安装软件
Linux 之旅 21:编译安装软件 图源:pexcel 开源软件的安装与升级 可执行文件 通常,源代码只有被编译成二进制的可执行文件后才能在操作系统上被用户直接运行,比如: [icexmoon@xy ...
- 【gcc/g++】1.编译器, 编译过程和基本参数
"木叶飞舞之处" 一, gcc编译器 二, gcc的编译过程 1--完整版 1. 预处理 2. 编译 3. 汇编 4. 链接: 2--简化版 简化编译过程 3--编译完成 三, g ...
- Go语言程序编译注入版本信息,提升Debug速度!
背景 为了对运行程序进行版本追踪,避免各个版本的服务程序混淆,通常的做法为在go build编译的时候程序注入 版本标志.编译时间.当前分支.当前 Tag.当前的提交号等信息,让go程序在运行的时候就 ...
- MTK驱动之modem编译及配置
本文作者驱动熊,转载请注明出处及本博客链接. 主要介绍modem的编译和3G .4G手机modem的配置方法. 首先编译modem版本,大家了解到modem的编译指令,主要是把做好的配置文件导入到源 ...
- Rockchip RK3588 Android SDK编译方法
Rockchip RK3588 Android SDK编译方法 Rockchip RK3588 Android SDK在原始Android的编译方式的基础上封装了一个编译脚本build.sh,用来简化 ...
最新文章
- redisson get()数据报错,missing type id property ‘@class’
- layui遍历json数组_Python列表边遍历边删除,怎么用才不报越界错误呢?
- 卫星发现,这里用十年逆转了千年!
- C#教程4:数据类型
- 24张IT工程师技能图谱,这些你都会吗?
- 文档声明和HTML样式表
- leetcode911. 在线选举(二分法)
- C++设计模式-装饰模式
- ThinkPHP 使用极光推送给ios推送消息
- Atitit 图片 验证码生成attilax总结
- 订票系统java源码_航空订票系统java源码
- pdf转换器下载使用步骤
- MATLAB中log算子处理图像
- 读书笔记 | 财务会计理论(第7版 William R.Scott)(上)
- Android设置WebView背景色
- MyEclipse 8.5 开发环境配置,汉化,Aptana2.0插件,SVN 插件,Flex Builder 3/4 插件安装(转)...
- 腾讯撕开中国NFT的“遮羞布”
- Excel 2010 VBA 入门 098 导入Access数据库的数据
- 数值分析——二分法和牛顿迭代(Bisection Method Newton‘s Method)
- 使用RANSAC的鲁棒TDOA Chan定位算法
热门文章
- windows 勾子简介
- JavaScript模拟实现“实例成员”和“静态成员”
- Internal table 备忘
- ArcGIS API for Silverlight 入门学习笔记(一)hello world 补充问题
- HTML知识积累及实践(四) - 表单元素
- Tensorflow随笔——命令行参数
- java手游+刺客_元气骑士手游教你如何成为一名顶尖流刺客
- 队列管理器连接数设置_详解!基于Redis解决业务场景中延迟队列的应用实践,你不得不服啊...
- android遥控器用什么测试,Android编程调用红外线遥控功能示例
- socket java 客户端_Java基于socket实现的客户端和服务端通信功能完整实例