BOOST的编译方法
来源:互联网 发布:python空格符表示 编辑:程序博客网 时间:2024/05/17 04:49
boost库的编译方法
本文简要说明了如何在windows环境下编译boost库。
- 系统要求
- 下载boost
- 编译boost
系统要求
- windows 7
- visual studio 2013
- visual studio 2015
下载boost
到boost官网http://www.boost.org下载最新的boost源码。
编译boost
约定
%BOOST_DIR%是指boost源码保存的目录
快速起步
启动命令行窗口,依次执行下列命令
cd %BOOST_DIR%bootstrap.batb2
得到的lib文件目录默认为%BOOST_DIR%\stage\lib
编译vs2013的boost库
如果你的项目是用vs2013开发的,而且你的系统中安装了两种不同版本的visual studio,那么使用快速起步一节命令编译得到的可能不是你需要的。
- 步骤1
- 启动命令行窗口
- 步骤2
- 运行visual studio 2013(即vs120)自带的vsvars32.bat
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\vsvars32.bat"
- 步骤3
- 进入boost源码目录
cd %BOOST_DIR%
- 步骤4
- 运行bootstrap,构建b2.exe
bootstrap.bat
- 步骤5
- 执行b2
b2
总结起来就是
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\vsvars32.bat"cd %BOOST_DIR%bootstrap.batb2
编译visual 2015的boost库
基本步骤和编译vs2013的boost库步骤相同。唯一的差别是vsvars32.bat不同。启动命令行窗口后,依次执行
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\vsvars32.bat"cd %BOOST_DIR%bootstrap.batb2
高级用法
在项目开发过程中,可能遇到这样的编译错误:
LNK1104 无法打开文件“libboost_filesystem-vc140-mt-s-1_61.lib”
而我们采用简单的执行b2的方法并没有得到-mt-s的lib文件。
编译选项
可以通过命令行查看b2的帮助
Boost.Build 2015.07-gitProject-specific help: Project has jamfile at JamrootUsage: 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; ./stageOther 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/executionFurther 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....found 1 target...
为了得到mt-s的库,可以在b2命令中带上如下参数
b2 --with-filesystem toolset=msvc-12.0 runtime-link=static link=static threading=multi
上面的命令行解释如下
–with-filesystem
仅编译filesystem模块
toolset=msvc-12.0
使用msvc-12.0来编译,生成的lib文件名中,将出现vc120
runtime-link=static
将静态链接C/C++的运行时库
link=static
将构建静态库
threading=multi
支持多线程库
0 0
- boost的编译方法
- BOOST的编译方法
- stlPort+boost的编译方法
- Win32平台Boost的编译方法
- Linux平台Boost的编译方法
- Linux平台Boost的编译方法
- Win32 平台 Boost 的编译方法
- Linux平台Boost的编译方法
- 用MinGW编译boost的方法
- Linux平台Boost的编译方法
- Linux平台Boost的编译方法
- Linux平台Boost的编译方法
- Linux平台Boost的编译方法
- Boost编译方法
- Boost编译方法
- Boost编译方法
- Boost 库编译方法
- boost库编译方法。
- wuzhicms 模块开发
- Android开发环境之eclipse报DDMS错
- Javascript面向对象编程(二):构造函数的继承
- list_for_each_entry 和 list_for_each_entry_safe函数分析
- json解析出错
- BOOST的编译方法
- static的作用
- 低质量的社交,不如高质量的独处
- 优化Android studio/Gradle构建
- C#学习篇(一)泛型
- 考试网站
- C# ajax 异步调用webservice方法
- Java基础之异常(1)
- LeetCode - 231. Power of Two