本博客(http://blog.csdn.net/livelylittlefish )贴出作 者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!
Win32 平台 Boost 的编译方法
本文以 boost1.40 为例,在 Win32 平台的编程环境为 vs2005 ,假设 Boost 代码在 E:/opensource/boost_1_40_0 目录,步骤如下。
1. 获得 bjam
获得 bjam 有 3 种方式,如下 :
此处介绍后两种方法。
方法 2 :
(1) 进入 vs2005 工具的命令行提示符
(2) cd E:/opensource/ boost_1_40_0/tools/jam/src
(3) E:/opensource/boost_1_40_0/tools/jam/src> build.bat
或者, E:/opensource/boost_1_40_0/tools/jam/src>build vc8
编译完成后:
生成的可执行文件为
E:/opensource/boost_1_40_0/tools/jam/src/ bin.ntx86 / bjam.exe
需要将 bjam.exe 拷贝到源代码所在的目录
cp bin.ntx86 / bjam.exe E:/opensource/ boost_1_40_0
方法 3 :
(1) cd E:/opensource/ boost_1_40_0
(2) E:/opensource/boost_1_40_0 > bootstrap. bat
该方法直接在 Boost 源代码目录下生成 bjam.exe 文件。
2. 修改 bjam 配置
使用 bjam 前,需要修改 bjam 的配置文件。 Win32 平台的配置文件:
E:/opensource/ boost_1_40_0/tools/build/v2 / user-config.jam
修改如下。注:笔者在实验时,不修改貌似也很正常。
将 57 行的“ # using msvc : 8.0 ; ”前的注释符号‘ # ’去掉,表明用到使用 msvc 8.0 编译。
如果要使用 STLport 作为其标准库,将 75 行前的‘ # ’去掉。
3. 完整编译 Boost
对 Boost 进行完整编译,生成所有调试版、发行版的静态库和动态库。
方法 1 :
E:/opensource/boost_1_40_0 > b jam --toolset=msvc --build-type=complete stdlib=stlport stage
或
E:/opensource/boost_1_40_0 > b jam
方法 2 :
E:/opensource/boost_1_40_0 /t ools / jam > build_dist.bat
也会完成 Win32 平台 bjam 和 Boost 的所有编译工作,并生成所有调试版、发行版的静态库和动态库。 但不推荐该方式。
编译成功后,将在 E:/opensource/boost_1_40_0 /bin.v2 目录下生成诸多文件,包括 .dll 和 .lib 文件,这就是 在 Win32 平台 要使用 Boost 需要的,其他的文件可以删除。
4 部分编译 Boost
完整编译 Boost 费时费力,且这些库在开发过程中并不一定全部用到,因此, bjam 也支持用户自行选择要编译的库。
在完全编译的基础上,使用 --with 或者— without 选择可以打开或者关闭某个库的编译,例如,仅仅编译 date_time 库:
E:/opensource/boost_1_40_0 >b jam --toolset=msvc --with -date_time --build-type=complete stage
当然, bjam 还有很多其他选项,如指定安装路径,指定 debug 或 release 等,可参考 bjam 文档 或帮助 。
附 1 : bjam 的命令
帮助: bjam --help
查看必须编译的库: b jam – - show-libraries
...
附 2 :编译选项说明
指定器,如 msvc 、 gcc 等。
指定编译类型,如果不指定,则默认为 release 。
指定要搭配的标准库,如果不使用 STLport ,可省略该选项。
指定 Boost 使用本地构建。如果使用 install 选项则编译后会把 Boost 安装到默认路径下, Win32 平台为 C:/boost , Linux 平台为 /usr/local 。
附 3 : User-config.jam 文件内容
# Copyright 2003, 2005 Douglas Gregor
# Copyright 2004 John Maddock
# Copyright 2002, 2003, 2004, 2007 Vladimir Prus
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt )
# This file is used to configure your Boost.Build installation. You can modify
# this file in place, or you can place it in a permanent location so that it
# does not get overwritten should you get a new version of Boost.Build. See:
#
# http://boost.org/boost-build2/doc/html/bbv2/reference.html#bbv2.reference.init
#
# for documentation about possible permanent locations.
# This file specifies which toolsets (C++ compilers), libraries, and other
# tools are available. Often, you should be able to just uncomment existing
# example lines and adjust them to taste. The complete list of supported tools,
# and configuration instructions can be found at:
#
# http://boost.org/boost-build2/doc/html/bbv2/reference/tools.html
#
# This file uses Jam language syntax to describe available tools. Mostly,
# there are 'using' lines, that contain the name of the used tools, and
# parameters to pass to those tools -- where paremeters are separated by
# semicolons. Important syntax notes:
#
# - Both ':' and ';' must be separated from other tokens by whitespace
# - The '/' symbol is a quote character, so when specifying Windows paths you
# should use '/' or '//' instead.
#
# More details about the syntax can be found at:
#
# http://boost.org/boost-build2/doc/html/bbv2/advanced.html#bbv2.advanced.jam_language
#
# ------------------
# GCC configuration.
# ------------------
# Configure gcc (default version).
# using gcc ;
# Configure specific gcc version, giving alternative name to use.
# using gcc : 3.2 : g++-3.2 ;
# -------------------
# MSVC configuration.
# -------------------
# Configure msvc (default version, searched for in standard locations and PATH).
# using msvc ;
# Configure specific msvc version (searched for in standard locations and PATH).
# using msvc : 8.0 ;
# ----------------------
# Borland configuration.
# ----------------------
# using borland ;
# ----------------------
# STLPort configuration.
# ----------------------
# Configure specifying location of STLPort headers. Libraries must be either
# not needed or available to the compiler by default.
# using stlport : : /usr/include/stlport ;
# Configure specifying location of both headers and libraries explicitly.
# using stlport : : /usr/include/stlport /usr/lib ;
# -----------------
# QT configuration.
# -----------------
# Configure assuming QTDIR gives the installation prefix.
# using qt ;
# Configure with an explicit installation prefix.
# using qt : /usr/opt/qt ;
Technorati 标签: Boost