BJAM编译工具的使用(一)——如何编译Boost,最新boost编译方法

来源:互联网 发布:matlab 稀疏矩阵 编辑:程序博客网 时间:2024/05/20 09:24

约定:boost安装路径 d:/dev/boost_1_39_0
boost编译步骤
  到d:/dev/boost_1_39_0/tools/jam/目录下,运行bootstrap.bat,编译bjam并
      拷贝至c:/windows目录下。或直接到boost下载站点下载bjam可执行文件

(或者运行/boost_1_34_1/tools/jam/src目录下的build.bat批处理文件,将新生成在/boost_1_34_1/tools/jam/src/bin.ntx86目录下的bjam.exe文件拷贝到boost的根目录下(该目录下有boost-build.jam文件))
  针对gcc编译器:
       1. 安装gcc4.3 到d:/dev/gcc,安装程序将环境变量设为系统变量,需要重启机器。下载位置:ftp://ftp.equation.com/gcc/gcc-4.3.3-32.exe
       2. 下载msys,并安装,安装后需要查询mingw路径,设置为d:/dev/gcc,并将该目录下mingw32-make.exe复制为make.exe.
       (windows 2008,windows7下)运行模拟终端,采用此快捷方式D:/dev/MinGW/msys/1.0/msys.bat -norxvt
  如果系统环境变量设置不正确,bjam编译工具无法找到编译器,需要设置boost-build相关文件:
     例如,对d:/dev/boost_1_39_0/tools/build/v2/user-config.jam进行修改
     针对微软的sdk 和vc系列,可以进行如下设置需要注意字母和标点之间均有空格):
        using msvc : 9.0 : "C://Program Files (x86)//Microsoft Visual Studio 9.0//VC//bin//cl.exe" :  <compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE <compileflags>/D_SCL_SECURE_NO_DEPRECATE <compileflags>/D_SECURE_SCL=0 ;
        using stlport : : d:/dev/stlport-5.2.1/stlport  :  d:/dev/stlport-5.2.1/lib ;
     针对gcc编译器,可以进行如下设置:
        using gcc : 4.3 : d://dev//gcc//bin//gcc.exe ;
     如bjam可以找到编译器,需指定编译器,设置如下:
        using msvc ;
      或
        using gcc ;

   编译boost:
      在boost目录下,运行bjam 即可编译全部的boost库,这个过程需要的时间比较长,一般建议只编译自己需要的库文件,通过bjam --show-libraries 即可查看
      到需要编译的boost库名。
      按照需要编译所需的boost库:
        bjam stage --with-thread --with-system --with-filesystem --with-date_time --with-signals --with-iostreams  link=static toolset=gcc
        使用vc系列,toolset=msvc;
        使用stlport,stdlib=stlport;
      编译生成文件统一在boost目录下stage/libs中
   使用vc的ide编译程序时,需要将d:/dev/boost_1_39_0添加到系统或工程的include目录,将stage/libs添加到libs目录中

 

 

二:改变编译器

在VC++.net平台下编译使用boost库的简捷方法

前不久,在VC6上编译使用了boost库,感觉配置挺麻烦的,其实,vs.net2003下编译boost不用那么麻烦的,
并不需要自己亲自来设置编译条件,只要用VS.net的命令行运行环境即可.

1.编译前的准备

当然先下载解压了boost 的最新版本.
首先用vc2003的那个命令行DOS环境启动(菜单里有"命令提示符")

开始->程序->Microsoft Visual Studio .NET 2003
->Visual Studio .NET 工具"->"Visual Studio .NET 2003 命令提示"
然后在此环境下切换到boost_1_33_1/tools/build/jam_src目录:
运行build编译

boost_1_33_1/tools/build/jam_src>build

2.编译


完了以后把编译完成的文件(在boost_1_33_1/tools/build/jam_src/bin.ntx86目录下)拷贝到boost_1_33_1目录下,
直接运行"

boost_1_33_1>bjam  stage

"就ok啦


编译好后boost库产生的lib及dll都存放在stage目录下了.
以后在使用时直接在项目中添加这个附加库目录即可.

要是vc8,最后一步改称
bjam sTOOLS=VC-80 stage

(怎么样,是不是很简便呢.)

3.使用

VC.net中使用boost库跟以前的方法一样.
在vs.net2003的项目中配置boost库的路径:
在visual studio .net2003 开发环境下,
选择菜单"项目" -> "属性",出来的对话框中,
(1).先选择"C/C++",然后在其下面的 "常规"项的"附加包含目录"中填上“boost库的根目录”.
   如果项目中程序中使用到了thread多线程库,则在“命令行” 的"附加选项"中添加上"MTd"或者其它的运行多线程需要的参数.

(2).然后在对话框中再选择"链接器"->"常规"->"附加库目录",
在这个选项中填入"编译boost库文件目录",比如前面的"stage"目录.



最新boost编译方法:


1、在c盘创建一个文件夹boost_1_50_0

2、下载最新的boost 库1.50到d盘,文件夹为boost_1_50_0

3、整个文件夹如下:


4、开启vc2008的自带的cmd工具,开始如下操作:

  1. D:\boost_1_50_0>cd tools\build\v2  
  2.   
  3. D:\boost_1_50_0\tools\build\v2>bootstrap.bat  
  4. Bootstrapping the build engine  
  5.   
  6. Bootstrapping is done. To build, run:  
  7.   
  8.     .\b2 --prefix=DIR install  
  9.   
  10.   
  11. D:\boost_1_50_0\tools\build\v2>  


 

5、不要按照它的操作提示来,我们回到根目录,执行b2.exe操作,这个操作需要到根目录下面做,自然就要使用相对路径call b2.exe,同时指定编译工具为msvc 9.0,以后安装的路径,c:\boost_1_50_0:

  1. D:\boost_1_50_0\tools\build\v2>cd ../../..  
  2.   
  3. D:\boost_1_50_0>tools\build\v2\b2.exe toolset=msvc-9.0 --build-type=complete --prefix="c:\boost_1_50_0" stage  
  4. Performing configuration checks  


6、执行安装过程:

  1. D:\boost_1_50_0>tools\build\v2\b2.exe toolset=msvc-9.0 --build-type=complete --prefix="c:\boost_1_50_0" install  


 

一切ok。


boost官方文档http://www.boost.org/boost-build2/doc/html/bbv2/overview/invocation.html


原创粉丝点击