VC下完全或部分编译boost

来源:互联网 发布:直播搞笑配音软件 编辑:程序博客网 时间:2024/04/30 14:58

一、下载boost

在boost的官网boost.org有下载地址http://sourceforge.net/projects/boost/.以Boost 1.33.1 Released 为例,直接下载。程序安装后解压缩到目录/boost_1_33_1.

二、完整编译boost

1、编译bjam

在控制台下面运行.../boost_1_33_1/tools/build/jam_src目录下的build.bat,会在此目录下生成文件bin.ntx86/bjam.exe.

    这里存在一些问题。如果你用的编译器不是VC8、VC安装目录不再C:/或者环境变量设置和build.bat不一致,会导致此编译无法运行,比较稳妥地办法是启动VC的命令提示,在此环境下运行build.bat,然后生成bjam.exe。

2、编译完整的boost
将生成的bjam.exe拷贝到.../boost_1_33_1下面,控制台中运行此文件即开始编译boost。VC8环境下会提示“系统找不到指定的路径”,运行:bjam "-sTOOLS=vc-8_0"即可。bjam开始按照默认参数编译boost,可能会话好几个小时。bjam的启动参数在boost.org或者下载的“boost_1_33_1/doc”下有详细的介绍,有人也翻译了部分中文资料。

三、编译部分boost库

boost大部分库不需要编译就可直接用,平台相关的库需要编译才能用。以VC8下编译boost::thread为例子,此库需要编译才能用。

1、直接用bjam编译boost::thread(动态库)
运行:bjam "-sTOOLS=vc-8_0" --with-thread即可在.../boost_1_33_1/bin/boost/libs下生成boost::thread所需的动态库和静态库,更多启动参数查看官方文档。

有个问题,bjam生成的库文件比较大,移动平台下面一般不能容忍。可能有更多的启动参数设置可以定制需要的文件,你可以查看官方文档---如果你有时间和耐心阅读英文,也请告诉我。

2、用VC编译boost::thread(静态库)
先新建一个WIN32/consol工程,例如boost.thread,去掉预处理头选项并且选择动态库或静态库选贤,然后将.../boost_1_33_1/libs/thread/src下所需的文件插入工程,此目录下的mac不需要编译。直接编译即可。

有个问题,boost有复杂完整的编译配置,可以查看英文官方文档。在引用自己编译的库会有一个提示找不到XX库文件,这个库文件名与bjam编译生成的文件名相同。解决办法:用预处理宏可以屏蔽boost默认设置。在boost.thread工程中加入预处理宏BOOST_ALL_NO_LIB,另外在自己的工程中也同样加入此预处理宏即可。更多资料查看英文官方文档。

3、用VC编译boost::thread(动态库)

新建WIN32/CONSOL/DLL/空项目,然后加入.../boost_1_33_1/libs/thread/src所需文件。设置预处理宏:BOOST_THREAD_BUILD_DLL.直接编译。

 

原创粉丝点击