实战Windows下安装boost

Boost大部分组件无需编译可直接包含头文件使用,但还有一些库需要编译成静态库或动态库才能使用。可使用下文将提到的bjam工具:bjam --show-libraries 查看必须编译才能使用的库。

编译安装环境:Win7,VS2008(msvc-9.0)

1. 下载boost安装包,我前下载的是1.51版的;

(英文版安装帮助:http://www.boost.org/doc/libs/1_51_0/more/getting_started/windows.html#or-build-from-the-command-prompt

2. 解压至D:\boost;

3. 启动Visual Studio 2008 Command Prompt,切换至解压文件目录,运行bootstrap.bat,得到bjam.exe工具;

(Boost的编译不使用标准make,而是专门的工具bjam [boost jam])

4. 运行bjam编译:

  bjam --toolset=msvc-9.0 --build-type=complete

  toolset选项指定编译器,如Microsoft的msvc、GNU的gcc、Apple Computer的darwin等;

  (这里需要指出你所使用的编译器版本,VC2008是9.0,VC2010是10.0,英文版安装帮助文档中也以字体加粗形式强调在windows下要指出编译器版本。)

  build-type选项为编译类型,当前选择的是完整编译;完整编译需时较长,我机器运行了45分钟左右。也可单独选择特定组件编译。

5. 编译完成,可配置VS2008 Tools > Options > Projects and Solutions > VC++ Directories页,选择Include files,将d:\boost\目录加到最前。

最后为当前project配置项目属性:

  • Properties > Configuration Properties > C/C++ > General > Additional Include Directories,输入boost根目录如的d:\boost\boost_1_51_0

  • Configuration Properties > C/C++ > Precompiled Headers, 变Use Precompiled Header (/Yu) 为 Not Using Precompiled Headers.

我因为想在命令行直接调用cl编译,就把boost\bin.v2下的所有.lib和.dll文件全部搜索出来,总共208+50=258个文件拷贝到单独的目录,并在环境变量中新增一条lib记录,值为该目录(d:\boost\boost_1_51_0\vc9lib),之后cl /EHsc xxx.cpp 才找得到库文件使调用成功。不知道有没有其它更简便的途径。

  

原文地址:https://www.cnblogs.com/edgarli/p/windows_boost_compile.html