1.3. 安装

Boost C++ 库均带有源代码。其中大多数库只包含头文件,可以直接使用,但也有一些库需要编译。 为了尽可能容易安装,可以使用 Boost Jam 进行自动安装。 无需逐个库进行检查和编译,Boost Jam 自动安装整个库集。 它支持许多操作系统和编译器,并且知道如何基于适当的配置文件来编译单个库。

为了在 Boost Jam 的帮助下自动安装,要使用一个名为 bjam 的应用程序,它也带有源代码。 对于某些操作系统,包括 Windows 和 Linux,也有预编译好的 bjam 二进制文件。

为了编译 bjam 本身,要执行一个名为 build 的简单脚本,它也为不同的操作系统提供了源代码。 对于 Windows,它是批处理文件 build.bat。 对于 Linux,文件名为 build.sh

如果执行 build 时不带任何命令行选项,则该脚本尝试找到一个合适的编译器来生成 bjam。 通过使用命令行开关,称为 toolset,可以选择特定的编译器。 对于 Windows,build 支持 toolsets vc7, vc8vc9,可以选择不同版本的 Microsoft C++ 编译器。 要从 Visual Studio 2008 的C++编译器编译 bjam,需要指定命令 build vc9。对于 Linux,支持 toolsets gccintel-linux,分别选定 GCC 和 Intel 的C++编译器。

应用程序 bjam 必须复制到本地的 Boost 目录 - 不论它是编译出来的还是下载的预编译二进制文件。 然后就可以不带任何命令行选项地执行 bjam,编译并安装 Boost C++ 库。 由于缺省选项 - 在这种情况下所使用的 - 并不一定是最好的选择,所以以下列出最重要的几个选项供参考:

  • 声明 stageinstall 可以指定 Boost C++ 库是安装在一个名为 stage 的子目录下,还是在系统范围内安装。 "系统范围"的意义取决于操作系统。 在 Windows 中,目标目录是 C:\Boost;而在 Linux 中则是 /usr/local。 目标目录也可以用 —prefix 选项明确指出。

  • 如果不带任何命令行选项执行 bjam,则它会自己搜索一个合适的C++编译器。 可以通过 —toolset 选项来指定一个特定的编译器。 要在 Windows 中指定 Visual Studio 2008 的 Microsoft C++ 编译器,bjam 执行时要带上 —toolset=msvc-9.0 选项。 要在 Linux 中指定 GCC 编译器,则要给出 —toolset=gcc 选项。

  • 命令行选项 —build-type 决定了创建何种方式的库。 缺省情况下,该选项设为 minimal,即只创建发布版。 对于那些想用 Visual Studio 或 GCC 构建他们项目的调试版的开发者来说,可能是一个问题。 因为这些编译器会自动尝试链接调试版的 Boost C++ 库,这样就会给出一个错误信息。 在这种情况下,应将 —build-type 选项设为 complete,以同时生成 Boost C++ 库的调试版和发布版,当然,所需时间也会更长一些。

要用 Visual Studio 2008 的C++编译器同时生成 Boost C++ 库的调试版和发布版,并将它们安装在目录 D:\Boost 中,应执行的命令是 bjam —toolset=msvc-9.0 —build-type=complete —prefix=D:\Boost install. 要在 Linux 中使用缺省目录创建它们,则要执行的命令是 bjam —toolset=gcc —build-type=complete install.

其它多个命令行选项可用于指定如何编译 Boost C++ 库的一些细节设定。 我通常在 Windows 下使用以下命令:bjam —toolset=msvc-9.0 debug release link=static runtime-link=shared install. debugrelease 使得调试版和发布版均被生成。 link=static 则只创建静态库。 runtime-link=shared 则是指定 C++ 运行时库是动态链接的,这是在 Visual Studio 2008 中对C++项目的缺省设置。