boost编译
来源:互联网 发布:淘宝直通车基础知识 编辑:程序博客网 时间:2024/06/07 06:06
Boost库的编译
Boost库本身不用多介绍,每个用C++的人都对它有或多或少的概念。尽管它存在着是否过度设计、是否学院派这类的争论,不过作为C++标准库的后备它的优秀是谁也否认不了的。下面是网上摘录的一段:
· 这世上总会有一些智慧让你吃惊。Boost就是这样的东西。
· Boost没有修改C++的任何规则。它是一个完全符合C++规范的代码库。
对于大部分Boost应用来说,它是不用编译的,直接包含头文件就可使用,如:
any
array
asio
conversion
crc
bind/mem_fn
enable_if
function
lambda
mpl
smart_ptr
...
只有少部分需要编译成库文件,需要编译的库如下:
date_time
filesystem
function_types
graph
iostreams
math
mpi
program_options
python
regex
serialization
signals
system
test
thread
wave
再次啰嗦一句,如果代码中用不到这部分需要编译的Boost库,完全可以不用花时间编译,直接包含头文件即可。
开始编译
第一步:得到Boost(少说费话,写再多字也没稿费!)
本文对应的版本是Boost.1.37.0。
下载地址:http://www.boost.org/users/download/
解压,本文假设解压到D:\Boost_1_37_0
第二步:得到bjam程序
Boost库由一系列库组成,为了简化编译,就搞了个bjam这个工具出来。
想偷懒就直接下载可执行版本,下载地址。Windows版的是有ntx86后缀的那个。
想自己动手先做编译Boost前热身的就接着往下看:
1. 进入控制台(如果是VC的建议从”Visual Studio 命令提示“进入)
2. 用cd命令进入boost目录下的tools\jam\src目录,如文本是:D:\Boost_1_37_0\tools\jam\src
3. 使用build命令编译bjam
· BCC5.5/BCB6/BCB2006/CB2009用户输入build borland。
· VC用户依据其版本输入build vc7或vc8或vc9
· Mingw用户输入build mingw
· 注意,由于build对含有空格的路径名支持不好,所以有时会编译失败,这时可以通过set path=命令修改编译器的路径为8.3格式(可以用dir /x来查看对应的8.3格式是什么名字)
4. 把生成的bjam.exe(bin.ntx86目录下)拷贝到Boost根目录下,如文本是:D:\Boost_1_37_0
使用bjam编译Boost
输入命令:
bjam --toolset=borland(对应BCB)或msvc(对应VC)或gcc(对应Mingw)stage
就开始编译了,编译时间比较长(大概半小时左右,依编译器以及选项不同而不同),编译好的文件会放在.\stage\lib(依--stagedir=命令决定)里。
bjam还有几个很有用的选项:
bjam参数
--build-dir=<builddir>
编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了)
--stagedir=<stagedir>
存放编译后库文件的路径,默认是stage
--build-type=complete
编译所有版本,不然只会编译一小部分版本(确切地说是相当于:variant=release, threading=multi;link=shared|static;runtime-link=shared)
variant=debug|release
决定编译什么版本(Debug or Release?)
link=static|shared
决定使用静态库还是动态库。
threading=single|multi
决定使用单线程还是多线程库。
runtime-link=static|shared
决定是静态还是动态链接C/C++标准库。
--with-<library>
只编译指定的库,如输入--with-regex就只编译regex库了。
--show-libraries
显示需要编译的库名称
Boost在linux中编译
用boost_1_39_0版本作为例子
1 进入boost_1_39_0/tools/jam/src
2 运行./build.sh (或者在boost_1_39_0/tools/jam 下运行./build_dist.sh)
3 编译完成后在boost_1_39_0/tools/jam/src/bin.linuxx86下编译出的bjam文件
4 把bjam文件拷贝到boost_1_39_0目录下
5 修改配置文件 在boost_1_39_0/tools/build/v2目下打开user-config-jam文件,修改第n行,去掉前面的#,启用gcc
6 在boost_1_39_0目录下,运行命令编译
命令: bjam –toolset=gcc–build-type=complete stage 默认下生成的文件放在stage/lib目录下
还可以指定头文件 和 库文件的存放路径
命令:bjam –toolset=gcc –includedir=/usr/include –libdir=/usr/lib/boostinstall
注:install 编译并安装boost
- 编译BOOST
- boost编译
- boost编译
- 编译boost
- boost编译
- 编译BOOST
- 编译 boost
- Boost 编译
- 编译 boost
- boost编译
- 编译 boost
- Boost编译
- Boost编译
- 编译boost
- boost编译
- 编译 boost
- BOOST 编译
- 编译boost
- Android NDK学习(7)NDK测试时遇到的问题:C与C++互相调用
- iBATIS、Hibernate、JPA 比较
- Java 实例化类的方法
- 简谈--贪心算法
- showmodaldialog 关闭窗口时 自动打开窗口 错误
- boost编译
- Java RMI与RPC,JMS的比较
- 工厂模式简介(C++实现)
- Android NDK学习(8)Android Makefile探索2 .
- Ok Google:开启谷歌的语音识别之路
- allegro 使用技巧
- mysql分表,分区
- Android程序的安装、卸载、更新
- c中 typedef函数的用法