`
anders0913
  • 浏览: 90691 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

boost库的编译命令

阅读更多
boost库编译方法,留个记号,免得忘了。

Windows下:
bjam.exe --build-type=minimal --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread toolset=msvc-9.0 variant=release link=static threading=multi stage


Linux下:
    ./bjam --build-type=minimal --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread variant=release link=static threading=multi stage


:-)


////////////////////////////////////////////////
许多新人对于编译BOOST感到无从下手,甚至因此而放弃使用BOOST,那真的太可惜了,下面我把一些常用的BOOST编译方法贴于此,同时也作为自己的笔记。

首先下载bjam.exe,复制到 $BOOST$ 目录下。或者自己生成bjam,打开Visual Studio 2008 命令提示窗口$BOOST$\tools\jam\src,执行 build.bat 会在$BOOST$\tools\jam\src\bin.ntx86 生成 bjam.exe 文件。复制文件 bjam.exe  文件到 $BOOST$\下。

1.完全编译安装:
bjam --toolset=msvc install
完成后会生成一个bin.v2编译时的临时目录,手动删除。生成另一个目录C:\boost,里面为所有的头文件和库文件。头文件目录为boost_1_34_1\boost目录复制过去的。

2.只编译相应的库文件
bjam --toolset=msvc stage
完成后同样会生成bin.v2临时目录。另一个目录为stage文件,里面有对应的库文件。

3.查看需要编译才能使用的库列表
bjam --show-libraries

4.编译特定的库,如只编译regex
bjam --toolset=msvc --with-regex stage
生成的库文件在stage目录中。

5.不编译某个库,如不编译regex
bjam --toolset=msvc --without-regex stage
生成的库文件在stage目录中。

6.编译特定的库,如只编译regex,生成debug,多线程,共享连接版本,并保存在stage。
bjam --toolset=msvc --with-regex stage debug threading=multi link=shared

7.生成 mt-sgd 的静态库(runtime-link-static)
bjam "-sTOOLS=vc-8_0" --with-thread install debug release runtime-link=static

8.编译regex库。
bjam --toolset=msvc --with-regex stage debug release threading=multi threading=single link=shared link=static runtime-link=shared runtime-link=static

boost的安装方法:

对于DLL版本
bjam --toolset=msvc link=shared runtime-link=shared threading=multi stage debug release install

对于lib版本
bjam --toolset=msvc link=static runtime-link=shared threading=multi stage debug release install


另外,在$BOOST$\tools\build\v2\user-config.jam找到下面的地文

# -------------------
# 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 ;

#在这里添加 vs2008 的配置

using msvc : 9.0 : : /wd4819 /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE  /D_SECURE_SCL=0 ;

#在这里添加 vs2005 的配置

using msvc : 8.0 : : <compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE <compileflags>/D_SCL_SECURE_NO_DEPRECATE <compileflags>/D_SECURE_SCL=0 ;   

然后进入 $BOOST$ 目录,执行bjam.exe 编译命令

//下面的命令的各选项的说明:
//prefix    将boost安装到的路径(生成的头文件和库文件都会放到该路径中)。
//重定义以下变量(利用-s设置):
//VC80_ROOT   vc2005的安装路径,如果未将vc2005安装到默认位置,你必须指定该项。
//TOOLS         使用的编译工具,vc2005对应的是vc-8_0
//PYTHON_ROOT   ython的安装目录,如果未将BOOST安装到默认位置,你必须指定该项。
//BUILD         编译结果选项,默认会生成尽可能多的版本,如调试版/发行版,静态库/动态库,单线程/多线程。

bjam 命令说明



Boost.Build V2 (Milestone 12)
Boost.Jam 03.1.16

Project-specific help:

  Project has jamfile at Jamroot

Usage:

  bjam [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 the single
                              "release" version of the libraries. This
                              release corresponds to specifying:
                              "release <threading>multi <link>shared
                              <link>static <runtime-link>shared" as the
                              Boost.Build variant to build.

                              complete - Attempts to build all possible
                              variations.

  --build-dir=DIR         Build in this location instead of building
                          within the distribution tree. Recommended!

  --show-libraries        Displays the list of Boost libraries that require
                          build and installation steps, then exit.

  --layout=<layout>       Determines 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 (default) - Names of boost
                              binaries include the Boost version
                              number and the name and version of the
                              compiler.  Boost headers are installed
                              in a subdirectory of <HDRDIR> whose
                              name contains the Boost version
                              number.

                              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 who
                              are building distribution packages.

  --buildid=ID            Adds the specified ID to the name of built
                          libraries.  The default is to not add anything.

  --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         Indicates 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.


Configuration help:

  Configuration file at $boost$\tools\build\v2
  user-config.jam

  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.

General command line usage:

    bjam [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 Supress all informational messages
  * -q Stop at first error
  * --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.

编译所有版本:

bjam --toolset=msvc-8.0 --prefix=$lib-and-dll-out-dir$ --build-type=complete install
等待编译完成.

设置开发环境:

打开VS2005 选择 工具->选项->vc++目录
设置包含文件目录$lib-and-dll-out-dir$\include\boost-1_37\boost
设置引用文件目录:$lib-and-dll-out-dir$\lib
完成.可以使用了.

;-)




分享到:
评论

相关推荐

    boost编译资料命令

    ### Boost编译资料命令解析 Boost是一个开源的C++库集合,它提供了许多有用的模板类和函数,可以显著提高开发效率。...通过本文介绍的核心知识点,希望能够帮助读者更好地应对实际项目中的Boost库编译需求。

    CentOS7环境下编译的boost 1.69静态库和动态库

    这里使用`--with-libraries=all`参数是因为我们要编译所有可用的Boost库。如果你只需要特定的库,可以替换`all`为相应的库名。 接着,配置编译选项,你可以选择编译静态库或动态库,或者两者都编译。以下分别示例:...

    boost库1.68版本Linux下编译的动态库和静态库

    如果所有测试都通过,那么说明库编译成功。 6. **使用编译好的库**:在项目中使用编译的Boost库时,需要链接对应的动态库(如`-lboost_thread -lboost_system`)或者静态库,并确保库的路径被系统搜索路径(`LD_...

    arm架构下的boost库文件

    **Boost库文件在ARM架构下的应用与编译详解** Boost库是C++编程语言的一个开源库集合,提供了许多实用的工具、库和编程接口,旨在提高C++的效率和灵活性。在ARM架构下使用Boost库,可以充分利用ARM处理器的特性,为...

    bjam.exe boost库编译使用的工具

    BJAM.exe 和 B2.exe 是 Boost 库编译过程中使用的两个关键工具,它们都是 Boost.Build 系统的一部分,用于自动化构建 Boost 库的过程。Boost 库是一个广泛使用的开源 C++ 库集合,提供了大量功能丰富的模块,如线程...

    boost库编译指南(VS2008+boost1.38)

    ### Boost库编译指南(VS2008+boost1.38) #### 一、下载Boost 在开始编译之前,首先需要下载Boost库。访问官方网站 [http://www.boost.org](http://www.boost.org),下载Boost 1.38.0版本的代码包。下载后,通常...

    boost静态库VS2010编译1.55版本

    4. **编译过程**:执行上述命令后,bjam会开始编译和链接各个Boost库。这可能需要一段时间,因为Boost包含了许多组件。 5. **生成的库文件**:完成后,你会在`stage\lib`目录下找到编译好的静态库文件,如libboost_...

    编译boost静态库 boost 1.58版本资源

    理解Boost库的编译过程有助于开发者更好地控制库的使用方式,优化应用程序性能,并且能够根据项目需求选择性地编译所需的组件。在1.58版本中,Boost已经包含了许多功能强大的模块,如Boost.Asio用于网络编程,Boost....

    boost库1.68版本windows下编译的dll和lib库

    4. **编译和构建**:执行编译命令,如`b2 --build-type=complete --with-thread --architecture=x86 --address-model=64 stage`,这将编译所有Boost库,并启用多线程支持,针对x86_64架构。 5. **生成库文件**:...

    VS2017下Boost的编译

    标题“VS2017下Boost的编译”指明了文章的主题是介绍如何在Visual Studio 2017环境下编译Boost库。Boost是一个跨平台的C++库,广泛应用于C++社区,提供许多组件,包括字符串处理、容器、数学运算、多线程处理等,极...

    vc8 sp1环境下boost库的编译和使用

    这条命令会编译所有Boost库,并将结果放在"stage"目录下。 4. **编译特定库**:如果你只需要特定的库,可以在bjam命令后指定,例如: ``` .\bjam --toolset=msvc-8.0 --build-type=complete stage library=regex...

    boost编译工具 C++

    "boost编译工具"主要指的是用于构建和安装Boost库的工具,这个压缩包中的"boost-jam-3.1.18-1-ntx86"就是 Boost Build (BJAM),这是一个自动化构建系统,专为Boost库设计,但也可以用于其他C++项目。BJAM简化了库的...

    Linux下boost库的安装

    在配置完毕后,使用`./b2`命令开始编译Boost库。此外,还可以通过添加各种参数来自定义编译选项,如文章中提到的`-a`和`-sHAVE_ICU=1`参数,`-a`表示重新编译所有内容,而`-sHAVE_ICU=1`则是启用ICU(国际组件库)...

    boost静态库win10 mingw730_64编译

    这里 `&lt;library_list&gt;` 是你想要编译的Boost库列表,如`date_time, filesystem, program_options`等。`threading=multi` 指定了多线程支持,`runtime-link=static` 表示静态链接C++运行时库。 4. **编译Boost**:...

    qt5.2.0编译boost库文件

    本文将详细介绍如何在Qt5.2.0环境下编译并集成Boost库,以充分利用Boost的强大功能。 首先,Boost库是一个开源的C++库集合,它提供了许多标准库没有的高级功能,如多线程、智能指针、正则表达式、文件系统操作等。...

    在VS2005中安装BOOST库

    将目录 cd 到 d:\boost_1_35_0\下,执行 bjam 命令,以编译 BOOST 库。可以编译不带 ICU 支持的 BOOST 库,也可以编译具有 ICU 支持的 BOOST 库。 编译不带 ICU 支持的 BOOST 库: bjam --without-python --...

Global site tag (gtag.js) - Google Analytics