文章目录
Boost 下载
- 历史版本链接(选择自己需要版本的boost)
Boost 编译
1. 打开vs2015 x86命令行
2. 生成编译工具
进入boost目录下,并执行bat文件,生成b2.exe和bjam.exe
3. 开始编译
执行: bjam install --prefix="D:\rhett\lib\boost_1_64_0\vs2015" --toolset=msvc-14.0 address-model=64 --link=shared runtime-link=shared threading=multi debug release
- prefix 指定生成的头文件和lib存放文件路径
- address-model 指定是编译成64位还是32位
- link 指定生成的是动态库还是静态库
- threading 指定是否开启多线程
- debug和release表示同时生成debug和release版本的库
bjam参数说明
Boost.Build 2015.07-git
Project-specific help:
Project has jamfile at Jamroot
Usage:
b2 [options] [properties] [install|stage]
Builds and installs Boost.
Targets and Related Options:
install Install headers and compiled library files to the
======= configured locations (below).
--prefix=<PREFIX> Install architecture independent files here.
Default; C:\Boost on Win32
Default; /usr/local on Unix. Linux, etc.
--exec-prefix=<EPREFIX> Install architecture dependent files here.
Default; <PREFIX>
--libdir=<DIR> Install library files here.
Default; <EPREFIX>/lib
--includedir=<HDRDIR> Install header files here.
Default; <PREFIX>/include
stage Build and install only compiled library files to the
===== stage directory.
--stagedir=<STAGEDIR> Install library files here
Default; ./stage
Other Options:
--build-type=<type> Build the specified pre-defined set of variations of
the libraries. Note, that which variants get built
depends on what each library supports.
-- minimal -- (default) Builds a minimal set of
variants. On Windows, these are static
multithreaded libraries in debug and release
modes, using shared runtime. On Linux, these are
static and shared multithreaded libraries in
release mode.
-- complete -- Build all possible variations.
--build-dir=DIR Build in this location instead of building within
the distribution tree. Recommended!#
--show-libraries Display the list of Boost libraries that require
build and installation steps, and then exit.
--layout=<layout> Determine whether to choose library names and header
locations such that multiple versions of Boost or
multiple compilers can be used on the same system.
-- versioned -- Names of boost binaries include
the Boost version number, name and version of
the compiler and encoded build properties. Boost
headers are installed in a subdirectory of
<HDRDIR> whose name contains the Boost version
number.
-- tagged -- Names of boost binaries include the
encoded build properties such as variant and
threading, but do not including compiler name
and version, or Boost version. This option is
useful if you build several variants of Boost,
using the same compiler.
-- system -- Binaries names do not include the
Boost version number or the name and version
number of the compiler. Boost headers are
installed directly into <HDRDIR>. This option is
intended for system integrators building
distribution packages.
The default value is 'versioned' on Windows, and
'system' on Unix.
--buildid=ID Add the specified ID to the name of built libraries.
The default is to not add anything.
--python-buildid=ID Add the specified ID to the name of built libraries
that depend on Python. The default is to not add
anything. This ID is added in addition to --buildid.
--help This message.
--with-<library> Build and install the specified <library>. If this
option is used, only libraries specified using this
option will be built.
--without-<library> Do not build, stage, or install the specified
<library>. By default, all libraries are built.
Properties:
toolset=toolset Indicate the toolset to build with.
variant=debug|release Select the build variant
# link=static|shared Whether to build static or shared libraries
threading=single|multi Whether to build single or multithreaded binaries
runtime-link=static|shared
Whether to link to static or shared C and C++
runtime.
General command line usage:
b2 [options] [properties] [targets]
Options, properties and targets can be specified in any order.
Important Options:
* --clean Remove targets instead of building
* -a Rebuild everything
* -n Don't execute the commands, only print them
* -d+2 Show commands as they are executed
* -d0 Suppress all informational messages
* -q Stop at first error
* --reconfigure Rerun all configuration checks
* --debug-configuration Diagnose configuration
* --debug-building Report which targets are built with what properties
* --debug-generator Diagnose generator search/execution
Further Help:
The following options can be used to obtain additional documentation.
* --help-options Print more obscure command line options.
* --help-internal Boost.Build implementation details.
* --help-doc-options Implementation details doc formatting.
使用CMake 引入
set(Boost_USE_STATIC_LIBS ON) # 重要
set(Boost_INCLUDE_DIR D:/rhett/lib/boost_1_64_0/vs2015/include/boost-1_64) # 根据自己的version.hpp文件对应的父路径,见下图
set(Boost_LIBRARY_DIR D:/rhett/lib/boost_1_64_0/vs2015/lib) # 编译获得的lib路径
find_package(Boost 1.64.0 REQUIRED COMPONENTS filesystem) # 需要引入的库
include_directories(${Boost_INCLUDE_DIR}) # 添加头文件路径
link_directories(${Boost_LIBRARY_DIR}) # 添加链接库地址
注意点
Debug vs Release
选择需要编译的内容(仅编译 filesystem)
--with-filesystem