编译boost_1_35_0详述

要说C++库也不少了,虽然跟java比还是少了点。拔高一点来说,c++将来的出路可能就在标准库了,c++圈子里的那些牛人似早就意识到了这一点,也做了不少努力,之前的比如大名鼎鼎的STL,最近的比如boost。据说boost有可能被纳入未来的c++标准之中,因此也就很有必要先了解一番了。

其实开始接触boost是因为项目中需要用到异步通信,很自然就想了解下人家是怎么做的。考虑过java的那个NIO,还有ACE库,后来就看上了boost的asio,没有特别的理由,Java高手没人啊,ACE有点太笨重,当初认为boot还算可以。后来发现boost确实是个好东西,你可以把它当作工具库,呵呵,比较喜欢asio,thread,any和spirit,还有好多没有研究呢,说不定还有更多宝贝。

废话少说,那就开始呗,首先碰到的编译问题,有点让人摸不着北。如果你有同感,就接着往下看吧。

编译步骤(boost_1_35_0版,其它版本可能稍有不同):

(一).编译jam:

1.下载boost_1_35_0.zip文件,解压,默认会解压到boost_1_35_0目录下。
2.到boost_1_35_0\tools\jam\src下运行build.bat/build.sh编译jam
3.编译成功的话,会在当前目录下生成一个bin.*的目录,其中*更具不同的平台结果不同,如:windows下为bin.ntx86,solaris下为bin.solarissparc等。同时在该目录会生成一个为名为bjam的可执行文件
4.把bjam拷贝到boost_1_35_0目录下

(二)编译boost库

1.win平台编译:
A.vc8:bjam --toolset=msvc-8.0 --build-type=complete stage(vc8.0)
B.vc7:换一种编译办法:先打开vc7自带的命令提示工具,输入名令:bjam --build-type=complete stage
2.solaris编译(使用gcc)
bjam --toolset=gcc stage -d2 -j32 address-model=64 architecture=sparc instruction-set=v9 --build-type=complete stage (32位)
bjam --toolset=gcc address-model=64 address-model=64 architecture=sparc instruction-set=v9 --build-type=complete stage (64位)
(三)如果不想编译全部模块,用参数指定即可
例如:bjam --toolset=gcc stage -d2 -j32 address-model=64 architecture=sparc instruction-set=v9 --with-system --with-thread --with-date_time --with-regex --build-type=complete stage
(四)编译完成
编译完成后会在boost_1_35_0目录下新建stage目录,编译结果在该目录的下的lib目录下。结果包括.lib和.dll/.so文件。根据需要链接这些库文件即可。
(五)编译结果文件命名规则
每个库文件名称构成如下:
“lib”+库名称+编译器及参数+线程参数+编译类别+版本号+”.”+文件扩展名
(例如:libboost_thread-vc71-mt-sgd-1_35.lib)
具体说明:
1.Lib:前缀。
2.库名称:boost_thread。所有的库文件名都以boost_开头。
3.编译器及参数:-vc71,用于编译boost库的编译器以及版本。
4.线程参数:-mt是否支持多线程。
5.编译类型:-d
编译类型可以没有,可以有多个,它们取值如下:
类型

含义


s
linking statically to the C++ standard library and compiler runtime support libraries.

g
using debug versions of the standard and runtime support libraries.

y
using a special debug build of Python.

d
building a debug version of your code.7

p
using the STLPort standard library rather than the default one supplied with your compiler.

n
using STLPort's deprecated “native iostreams” feature.8


6.版本号:-1_35。

7.后缀:.lib

根据平台不同可能不同,在大多数unix平台,静态库为.a,动态库为.so;在windows平台则静态库为.lib,动态库为.dll。还可能和编译器有关,如gcc的静态库总是.a,无论在unix还是在windows平台。

关于编译的其它详细信息,查看boost的文档是很重要的。当初在这块也费了不少神,那时有人这样提醒我一下就好了。

;-)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值