boost 配置 Visual studio

分别综合了如下网站:

http://blog.csdn.net/poechant/article/details/7184357

http://blog.csdn.net/qianyun6/article/details/6057567

http://www.ituring.com.cn/article/536

当然还有自己的经历。

1. 下载并解压Boost C++ Libs

下载源码: http://sourceforge.net/projects/boost/files/boost/1.49.0/

解压缩后,打开windows命令行,转到“\tools\build\v2”目录下。

运行:bootstrap.bat,生成b2.exe和bjam.exe两个Build文件。

将“bjam.exe”自制到解压缩的根目录下源文件的根目录。



2. 编译

打开CMD终端,输入命令,格式如下:

  1. C:\Users\Michael>E:  
  2. E:\>cd boot_1_48_0  
  3. E:\>bjam --toolset=msvc-9.0 --build-type=complete stage  

其中“--toolset=msvc-9.0”表示编译成VS 9.0版本,因为VS 2008为VS 9.0版本,如果是VS 2010,则用“--toolset=msvc-10.0”参数。

编译是很漫长的过程,如果你只需要使用Boost库的一部分,可以选择性地编译。比如你只想用system,thread库,则输入:

  1. E:\>bjam --toolset=msvc-9.0 --with-system -with-thread  

bjam的其他参数如下:

stage/install: stage表示只生成库(dll和lib),install还会生成包含头文件的include目录。本人推荐使用stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录(E:/SDK/boost_1_39_0/boost,只比include目录多几个非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间。



toolset:  指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。


without/with:  选择不编译/编译哪些库。因为python、mpi等库我都用不着,所以排除之。另外,wave、graph、math、regex、test、program_options、serialization、signals这几个库编出的静态lib都非常大,所以不需要的也可以without掉。这可以根据各人需要选择,默认是全部编译。但是需要注意,如果选择编译python的话,是需要python语言支持的,应该到python官方主页http://www.python.org/下载安装。


stagedir/prefix:  stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。

build-dir:  编译生成的中间文件的路径。这个本人这里没用到,默认就在根目录(E:/SDK/boost_1_39_0)下,目录名为bin.v2,等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。


link:  生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘。


runtime-link:  动态/静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译。一般link只选static的话,只需要编译2种组合即可,即link=static runtime-link=shared和link=static runtime-link=static。


threading:  单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。


debug/release: 编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。


(如果上两步你还配置不出来后,运行后面的文件出现了:错误:1>LINK : fatal error LNK1104: 无法打开文件“libboost_regex-vc100-mt-gd-1_49.lib”,那么有最直接的办法,直接运行,bjam,不加入任何后缀配置,然后需要的库文件就出现在了boost_1_49_0\stage\lib)

3 .配置环境

请先按照《Boost C++ Libs —— (1)配置Boost的VS2008开发环境》一文在Visual Studio中配置开发环境。)

1)右键点击 Microsoft.Cpp..user,选择 Properties 打开 Property Page

boost 配置 Visual studio_第1张图片

2)选择 VC++ Directories,编辑 Include Directories,让它包含你的 Boost 源代码路径

3)编辑 Library Directories,让它包含你编译生成的 Boost 库目录,如上面的示例为C:\boost_1_47_0\stage\lib

4.源码

  1. #include     
  2. #include     
  3.   
  4. using namespace std;  
  5.   
  6. int main()  
  7. {  
  8.     using boost::lexical_cast;   
  9.   
  10.     int a=lexical_cast<int>("123");   
  11.     double b=lexical_cast<double>("123.0123456789");   
  12.     string s0=lexical_cast(a);   
  13.     string s1=lexical_cast(b);   
  14.     cout<<"number: "<"  "<
  15.     cout<<"string: "<"  "<
  16.     int c=0;   
  17.     try{    
  18.         c=lexical_cast<int>("abcd");   
  19.     }    
  20.     catch(boost::bad_lexical_cast& e){    
  21.         cout<
  22.     }  
  23.   
  24.     return 0;   
  25. }  

你可能感兴趣的:(c/c++)