读书人

怎么编译BOOST库上网查也没查到正确

发布时间: 2012-03-29 12:53:13 作者: rapoo

如何编译BOOST库,上网查也没查到正确的。。。
如何编译BOOST库,上网查也没查到正确的。。。

[解决办法]
运行命令:

bjam -sBOOST_ROOT=. -sTOOLS=msvc "--build-type=complete"
bjam -sBOOST_ROOT=. -sTOOLS=msvc address-model=64 "--build-type=complete"
bjam -sBOOST_ROOT=. -sTOOLS=msvc architecture=ia64 address-model=64 "--build-type=complete"

这是我编译的完整 BOOST 库的命令。

注意这是完全编译boost库,包括单线程、多线程、unicode和非unicode版本。
因为我觉得以后的需求是不确定的,干脆一次性编译好了。还有上面的命令行参数稍微说明一下:
-sBOOST_ROOT=.表明boost库的根目录在当前目录。-sTOOLS=msvc表示使用VC 编译器进行编译,如果你机子上装有多个版本的VC,那么会选择最高版本的编译器进行编译(如装有VC6.0、VC 8.0,那么肯定是选择VC 8.0的编译器进行编译)。--build-type=complete表明是完全编译,包括各种版本。


bjam.exe --toolset=msvc-10.0 link=static runtime-link=shared threading=multi debug release stage

bjam.exe --toolset=msvc-10.0 address-model=64 link=static runtime-link=shared threading=multi debug release stage

bjam.exe --toolset=msvc-10.0 architecture=ia64 address-model=64 link=static runtime-link=shared threading=multi debug release stage

如何编译64位( 64bit ) boost类库
64位windows平台,编译环境是VS2005,进入Visual Studio 2005 x64 Win64 Command Prompt(单纯的cmd也不一定不行,我没试)。把bjam.exe放在boost根目录下,进入根目录,执行:
bjam --toolset=msvc address-model=64 --with-thread stage
bjam --toolset=msvc address-model=64 --with-date_time stage
关键选项:“address-model=64 ”
64位Linux平台,使用gcc编译。进入boost根目录,执行:
./bjam --toolset=gcc --with-thread stage
./bjam --toolset=gcc --with-date_time stage
linux平台下倒是简单,不过网上有篇文章介绍用如下命令编译,不知道是多此一举,还是适用于某些情况(非64位linux主机?)。
./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-thread stage
./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-date_time stage

唉。命令都很简单,可浪费了我不少时间。usage根本没写,去看boost build的嘛,页数n多不说,看完之后能否找到答案还是未知数。网上相关资料很少而且大多南辕北辙,只好一直搜索+尝试。其实我只是想要个64位版本的库而已,这应该不是啥稀罕的需求吧?
在windows平台下,编译出来的是否是64位类库,只有link 64位程序的时候才能发现。如果不是,link程序无法找到类库中定义的函数或者类。linux不知道,因为我整出来直接就是64位了,我也懒得再找一台32位linux主机折腾了。
在1.37之后的boost,如果想要使用boost::thread库,必须有boost::date_time库。当然这件事情又一如既往很酷地没有出现在容易看到的地方。而是让你链接错误后再去玩抓虫游戏。
[解决办法]
在BOOST库自带的说明文档里,就有很详细的说明,咋不看呢?

不论是全部编译还是部分编译,说明文档里都很详细讲解了。最新版的BOOST库貌似还有.sln文件,for vs的解决方案。

读书人网 >C++

热点推荐