Boost库的编译(Windows)

本文介绍了在Windows上使用Visual Studio 2008编译Boost库1.42.0的详细步骤,包括下载Boost源码、配置编译选项以及使用bjam工具进行编译。重点讲解了不同编译选项如link、threading、runtime-link和variant对生成库文件的影响,提供了多个编译示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 Boost库的编译

使用环境

Boost1.42.0 + VS2008 + Win7

1.1下载Boost

在官网(www.boost.org)下载boost_1_42_0.7z,然后解压。目前最新的版本为1.61.0,选1.42.0这个这个版本主要是为了和《Boost程序库完全开发》一书一致。

1.3 编译Boost

在VS2008环境下,使用【工具】-【VS2008命令提示行】

通过“P:”进入P盘,通过cd 指令进入子目录,最终进入“boost_1_42_0\tools\jam\src”目录并运行build.bat。

运行结束之后,在“boost_1_42_0\tools\jam\src\bin.ntx86”目录下生成bjam.exe文件。

将bjam.exe拷贝到boost_1_42_0文件夹(根目录)下。

  1. 在命令行环境下,进入boost_1_42_0目录执行bjam.exe编译命令:

bjam --stagedir=P:\xy\output --with-thread link=static threading=multi runtime-link=shared stage variant=debug

之所以选择这样的编译选项,是前面提示无法打开“libboost_thread-vc90-mt-sgd-1_42.lib”。

执行编译指令:

bjam --stagedir=P:\xy\output --with-date_time link=static threading=multi runtime-link=shared stage variant=debug

因为线程中的超时机制会用到时间库,所以使用thread组件的同时还需要编译date_time库。

由于使用的是静态库文件,所以只需要添加“附加库目录”即可(不用添加附加依赖项)。

另外,运行库需要设置为“多线程调试(/MTd)”,如果为“多线程调试DLL(/MDd)”则还需编译“libboost_thread-vc90-mt-gd-1_42.lib”文件。

3 bjam的使用

Bjam [options][properties][install|stage]

[properties]

--toolset=toolset

指定进行编译的工具集(编译器)

msvc-6.0:VC6.0/msvc-7.0:VS2003/msvc-8.0:VS2005/msvc-9.0:VS2008/msvc-10.0: VS2010

variant=debug|release

决定编译用什么版本(Debug or Release)

link=static|shared

决定使用静态库还是静态库

threading=single|multi

决定使用单线程还是多线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值