?
0,前提
?
Boost 库版本 1.57.0
下载地址
http://www.sxzhongrui.com/users/history/version_1_57_0.html,选择windows版本
?
编译器:VS2010?
?
编译目标:静态链接库
C/C++运行时库链接方式:/MT ?/MTd ? /医学博士? /MDd
?
?
官网给出的windows平台编译测试包括
Windows:
GCC,mingw:4.4.0、4.4.7。 4.5.4、4.6.3、4.7.2、4.7.3、4.8.0、4.8.2、4.9.0
?
Visual C++:8.0、9.0、10.0、11.0、12.0
?
?
?
?
?
?
编译步骤
1。通过VS2010命令提示符工具进入Boost库根目录
? ? ?例如:H:\Boost\boost_1_57_0
?
2。运行根目录下的批处理文件
? ? ?bootstrap.bat
?
3。执行bootstrap.bat后,生成4个文件
? ? ? ? b2.exe ? ? bjam.exe?引导程序日志? ?project-config.jam
? ? ? ??
?
?
4。使用bjam.exe编译boost库
? ? ?用bjam.exe编译Boost库的命令行参数详细参数请看这个链接
? ?
? ? ?bjam参数介绍
? ??链接参数
? ? ?表示生成静态链接库或生成动态链接库,link=static表示生成静态链接库,link=shared表示生成动态链接库。
?
? ??运行时链接参数
? ? ?表示C/C++运行库的使用方法,runtime-link=static表示静态链接C/C++运行库,runtime-link=shared表示动态链接C/C++运行库。
?
?
? ? ? --工具集参数
? ? ?编译boost库的工具集。 --toolset=msvc-10.0 标识使用VS2010进行编译。 VS版本与工具集版本对应关系如下:
? ? ?msvc-6.0 :??VC6.0
? ? ?msvc-7.0:??VS2003
? ? ?msvc-8.0:??VS2005
? ? ?msvc-9.0:??VS2008
? ? ?msvc-10.0:??VS2010
?
? ? ?螺纹参数
? ? ?表示是使用多线程库还是单线程库,single表示单线程,multi表示多线程
?
? ? ? debug ?release 标志生成调试或发布版本
?
? ? ?阶段参数
? ? ?表示只生成dll或lib,不生成包含include目录的头文件目录。 ?如果要生成包含头文件的include目录,需要使用install参数
?
? ? ?--stagedir参数
? ? ?表示生成目录的存放目录
?
?
? ? ?本文为每个库编译了4个boost中C/C++链接方法的静态链接库
? ? ?① /MT ? /MTd
? ? ??巴贾姆?阶段 ? ? --toolset=msvc-10.0 ?--build-type=complete ?--stagedir="H:\Boost\boost_1_57_0\bin\vc10" ? ?链接=静态? ?运行时链接=静态? ?线程=多?调试版本
?
? ? ?生成的库名称格式
? ? ? /MT:?libboost_atomic-vc100-mt-s-1_57.lib ? ? ?/MTd: ?libboost_atomic-vc100-mt-sgd-1_57.lib
?
?
? ? ?② /MD ? /MDd
? ? ??巴贾姆?阶段 ? ? --toolset=msvc-10.0 ?--build-type=complete ?--stagedir="H:\Boost\boost_1_57_0\bin\vc10" ? ?链接=静态? ?运行时链接=共享? ?线程=多?调试版本
? ? ?生成的库文件名格式
? ? ? /MD:?libboost_atomic-vc100-mt-1_57.lib? ? ? ? /MDd: ?libboost_atomic-vc100-mt-gd-1_57.lib
?
?
5。编译完成
??每种类型的 /MT?/MTd?/MD?/MDd 静态库各有 34 个库。
? ? ?编译完成后,删除boost目录下的bin.v2临时目录。
?
?
6。在VS中使用boost库? ?
? ?项目属性--VC++目录--include目录,设置为boost根目录
? ??
?
? ??
?
?
? ? ?项目属性--VC++目录--库目录,设置lib文件目录
? ??
? ?
?
?
7。参考资料
? ??VS2010编译Boost 1.56??
? ?编译Boost的详细步骤。适用于VC6 VS2003 VS2005 VS2008 VS2010??
?
转载于:https://www.sxzhongrui.com/cuish/p/4175491.html
1。编译
1。前往http://www.sxzhongrui.com/users/history/version_1_54_0.html下载最新版本的boost 1.54.0;
2.解压后,运行bootstrap.bat批处理文件,得到bjam.exe;
3、进入VS2010的命令提示符(方法:工具->Visual Studio 2010命令提示符),进入boost目录。 (比如我的boost目录:D:\boost_1_54_0)
4、进入“bjam --toolset=msvc-10.0 --build-type=complete stage”后,等待约1小时即可完成编译。编译后的lib文件位于stage\lib下,看起来像“boost_atomic-vc100-mt-1_54.lib”。
注:一般用途,可以选择编译boost库(毕竟完整编译需要很长时间)。比如我通常会编译以下常用的boost库system、thread、date_time、filesystem、serialization,以及对应的bjam命令如下:
bjam --toolset=msvc-9.0 架构=x86 地址模型=64 --with-system --with-thread --with-date_time --with-filesystem --with-serialization
其中:msvc-10.0表示编译成VC10.0(即VS2010)版本,对应的msvc-9.0表示编译成VC9.0(即VS2008)版本; ?address-model=64 表示编译成64位版本。如果省略此项,则默认编译为32位版本。
编译成功(1个多小时)。生成的lib位于D:\boost_1_54_0\stage\lib下。 1.54版本编译成功,已超过4G
2.配置vs2010环境
?1。新建一个vc控制台,编写代码
#include“boost/shared_ptr.hpp”
#包括
A 类 {
boost::shared_ptr
公众:
A(boost::shared_ptr
无效值(int i){
*no_=i;
}
};
B 类 {
boost::shared_ptr
公众:
B(boost::shared_ptr
int value() const {
返回*no_;
}
};
int main() {
boost::shared_ptr
A a(温度);
B b(温度);
a.value(28);
断言(b.value()==28);
}
2.在左上角的“解决方案资源管理器”中,右键单击项目名称-属性,打开属性页
??在配置属性--->C/C++常规--->附加包含目录中,D:\boost_1_54_0
?
在配置属性--->链接器--->常规---->附加库目录中,添加? D:\boost_1_54_0\stage\lib?
3. 运行代码。如果没有错误,说明配置成功。
?
?
?
?
1 安装
首先从官网(www.sxzhongrui.com)下载最新版本的boost源码,点击下载(由于某种原因,打开网站很慢),下载在网页中间
?
点击如下图,然后选择zip下载
2合辑
1、首先将解压后的文件夹boost_1_57_0重命名为boost(方便后面添加包),放到盘里,
这里以 C 盘为例,C:\boost
2.在源码中找到一个批处理bootstrap.bat,双击运行
此时会弹出Building Boost.Jam。过一会儿,源代码中就会添加一个新的文件 bjam.exe
3.运行bjame.exe进行编译(时间较长,大约20分钟)。
3调试
新建一个VS2010控制台应用程序,选择空项目->添加C++源文件
项目名称为hello,添加的cpp文件名也为hello.cpp
可以先用一下
int main(){
??????返回0;
}
测试完成后,可以编译,说明VS基础环境已搭建完成
将代码更改为以下代码
#包括
#包括
void hello() {
std::cout <<“世界你好,我是一个线程!” << std::endl;
}
int main() {
boost::thread thrd(&hello);
thrd.join();
返回0;
}
然后需要导入之前下载的boost包,开始下面的配置
右键项目名hello,选择Properties,选择C/C++,选择General,在附加包含目录后添加C:\boost
然后选择链接器,选择General,在附加库目录后面添加C:\boost\stage\lib
点击确定,然后调试工程,点击“调试”,点击“开始执行(不调试)”,运行成功即配置成功