吐槽:楼主出来工作快2年了,自我感觉在公司还不错,得到领导的认可,但是由于一些原因前段时间准备换工作,面试的时候被面试官问的无地自容。哎。深感自责,于是呼决定发奋图强,不苟安于现状,希望后面能够再接再厉更上一层楼。
买了一本书,boost开发指南,希望能够从中汲取到营养,也和大家分享。共同进步。
话不多说,先从安装和编译开始。苦逼楼主是用的操作系统是win7。当然比不上平时自己在家都使用某命令行的高大上了。
后面的分享都是在win7的系统上进行操作的。
1、先下载boost库,苦逼楼主下载的是最新版,程序猿也追求时尚啊boost_1_55_0
http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.zip/download?use_mirror=ncu
2、解压,楼主是把解压后的目录放到d盘的。D:\boost_1_55_0
3、进入D:\boost_1_55_0,找到bootstrap.bat,执行得到bjam.exe
4、到这一步都没问题的话,那就恭喜你进入后面的编译。苦逼楼主使用的是vs2010因此:
toolset=msvc-10.0,后面的版本根据vs的版本来填值得,具体对应参看下面:
vs2003 : msvc-7.1
vs2005 : msvc-8.0
vs2008 : msvc-9.0
vs2010 : msvc-10.0
build-type选项指定编译类型,
layout选项指定需要编译的库名及头文件的地址目录名的生成策略。默认Windows下为versioned
下面是楼主编译时的编译指令:
bjam stage --toolset=msvc-10.0--build-type=complete --layout=versioned
5、编译过程中可能会产生一些警告,这个可以不管。当然你要是追求完美的话,非看他不顺眼的话也可以去掉,去掉的方法如下:
修改D:\boost\boost_1_55_0\tools\build\v2\user-config.jam,在
#-------------------
# MSVCconfiguration.
#-------------------
# Configure msvc(default version, searched for in standard locations and PATH).
# using msvc ;
# Configure specificmsvc version (searched for in standard locations and PATH).
# using msvc : 8.0 ;
下方添加:
using msvc : 8.0 : :<compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE<compileflags>/D_SCL_SECURE_NO_DEPRECATE<compileflags>/D_SECURE_SCL=0 ;
注意:如果是VS2008或VS2010则,分别要对应修改成:
using msvc : 9.0 : :<compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE<compileflags>/D_SCL_SECURE_NO_DEPRECATE<compileflags>/D_SECURE_SCL=0 ;
using msvc : 10.0 :: <compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE<compileflags>/D_SCL_SECURE_NO_DEPRECATE<compileflags>/D_SECURE_SCL=0 ;
其中,/wd 是Visual C++编译器选项,用于指定编译器如何为给定编译生成警告。
/wd n表示禁用指定的编译器警告,其中 n 是编译器警告编号。例如,/wd4819 禁用编译器警告 C4819。
在系统中编译 ANSI源文件时,如果有一个代码页不能表示该文件中的所有字符,则会出现 C4819 警告。
/D(预处理器定义)用于定义源文件的预处理符号。_CRT_SECURE_NO_DEPRECATE、_SCL_SECURE_NO_DEPRECATE、_SECURE_SCL等预处理宏定义分别能屏蔽一部分warning警告信息,详细参见MSDN。
因此,上述添加内容中只是添加了几个编译选项,用于屏蔽一些非必要警告信息。
6、编译是一个漫长的等待过程,这时候你可以去泡泡茶、喝杯咖啡了……
…….一只乌鸦悄悄地飞过…..拉了一泡屎…...落在了浅尝者的头上…...
7、到这一步,说明你已经编译完成了,打开你的vs吧,然后新建一个工程,那就是helloword,楼主的是vs2010,然后再工程属性中添加boost的头文件目录和lib库,我的是这样设置的:
8、编写第一个boost代码程序
#include <iostream>
#include "boost/thread/thread.hpp"
using namespace std;
using namespace boost;
void Hello()
{
cout<<"hello"<<endl;
return ;
}
int main()
{
thread thd(&Hello);
thd.join();
getchar();
return 0;
}
编译运行:
如图所示,这说明你的boost‘已经正确安装和编译了,下面我们将继续讨论boost组件的应用