`

windows 下 boost 库编译 vs2005 vs2008 vs2010

 
阅读更多
参考:
http://www.cnblogs.com/luhouxiang/archive/2011/09/26/2192345.html
http://apps.hi.baidu.com/share/detail/31765188

本人环境:
os:           win7 64bit
编译器:       vs2010
boost源程序:  1.48.0

无论是vs2005,vs2008还是vs2010,步骤都差不多
大致为
1.编译bjam 
2.编译boost


下面为详细步骤:

1.打开Visual Studio 2005/2008/2010 命令提示窗口

输入set,查看有关参数,特别注意  “PROCESSOR_ARCHITECTURE=AMD64”选项,我需要编译32位的,所以输入: set PROCESSOR_ARCHITECTURE=X86

2.进入\boost_1_48_0\tools\build\v2\engine(这个路径为build.bat的路径, 有可能会有点差异,可以通过搜索的方式搜到build.bat的具体路径)

3.执行 build.bat 会在\boost_1_48_0\tools\build\v2\engine\bin.ntx86 (这个路径为生成的bjam.exe目录,可能会有点出入,同样可以通过搜索找到bjam.exe)生成bjam.exe 文件.

4.Copy bjam.exe 文件到 \boost_1_48_0下.

5.修改 \boost_1_48_0\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 ;
#在这里添加 vs2005/vs2008/2010 的配置
#{   选其一
#for vs2008
#using msvc : 9.0 : : /wd4819 /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 ;

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

#for vs2010
using msvc : 10.0 : : <compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE <compileflags>/D_SCL_SECURE_NO_DEPRECATE <compileflags>/D_SECURE_SCL=0 ;
#}


6.进入\boost_1_48_0 目录

7.执行bjam.exe 编译命令
//下面的命令的各选项的说明:
//prefix    将boost安装到的路径(生成的头文件和库文件都会放到该路径中)。
//重定义以下变量(利用-s设置):
//VC80_ROOT vc2005的安装路径,如果未将vc2005安装到默认位置,你必须指定该项。
//TOOLS         使用的编译工具,vc2005对应的是vc-8_0
//PYTHON_ROOT        python的安装目录,如果未将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 F:\Develop\boost_1_37_0 C++\boost_1_37_0\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.

8.我的编译命令,编译所有版本(其中 msvc-10.0 for vs2010, msvc-9.0 for vs2008, msvc-8.0 for vs2005).
bjam --toolset=msvc-10.0 --prefix=e:\boost --build-type=complete install
等待编译完成.

编译64bit:
address-model=64

9.设置开发环境
打开VS2005/2008/2010 选择 工具->选项->vc++目录
设置包含文件目录e:\boost\boost-1_48
设置引用文件目录:e:\lib
完成.可以使用了.



Windows 7(64位)下通过vs2010完整安装boost 1.46.1(32位/64位) 

2011-06-25 14:51:21|  分类: boost |  标签:windows7  64位系统  boost  1.46.1  vs2010   |字号 订阅
        最新的boost库已经发布了1.46.1版本,但是我接触的比较晚,去年才开始接触并使用,第一次使用的是1.43版本,而且当时安装的时候没有进行完全安装(未包含mpi及python,只涉及32位版本)。这几天重新研究了一下完整安装问题,以下针对Windows 7系统(64位)下通过vs2010完整安装boost 1.46.1(32位/64位)进行详细描述。

        完整安装boost,需要涉及几个第三方库:

        1)Regex所需要的Unicode支持类库---ICU。由于自己是使用C/C++,所以需要icu4c。

        2)MPI所需要的类库---Boost的官方站点说需要MPICH或OpenMPI之类的支持,事实上在Windows下总是会提示需要MPIC++,你需要的是Microsoft Cluster Pack SDK,下载并默认安装在C:\ProgramFiles\Microsoft Compute Cluster Pack下。(说明:如果安装Microsoft HPC Pack 2008 SDK或Microsoft Compute ClusterPack时不是装到默认的路径下,那bjam就会找不到mpic++的路径,这时候可以修改一下mpi.jam(在boost_1_46_1\tools\build\v2\tools目录中): local cluster_pack_path_native = "你的路径")。

        3)Python所需要的Python语言库---Python。

        以下先分步描述相关第三库的安装过程:

        1)ICU4C

             a)当前icu4c最高版本为4.8,下载的源代码包为icu4c-4_8-src.tgz(个人偏向于通过源代码编译生成,这样会更灵活,比如有问题时可以调试);

             b)解压icu4c-4_8-src.tgz文件,进入icu\source\allinone子目录,用vs2010打开allinone.sln解决方案;

             c)分别按照Win32(32位程序)/x64(64位程序)下的Debug/Release模式进行编译,其Win32的Debug/Release库文件保存于icu\lib目录,x64的Debug/Release库文件保存于icu\lib64目录。需要注意的是:生成相应的Debug/Release库文件后,需要将相应的lib/lib64目录下.dll及.lib文件备份出来,避免编译下一Release/Debug版本时被覆盖;

             d)将编译后的Win32/x64的Debug/Release文件(.lib及.dll文件)依次保存好(比如x86/x64目录下的debug/release子目录),并在x86/x64目录下的debug/release子目录下新建include目录,并将icu4c的头文件依次拷贝一份到对应的include目录中(后面编译boost时需要)。

        2)MPI

              最最简单的方式,直接进入前述地址下载安装即可。

        3)Python

             当前Python最高版本为3.2,从3.2版本开始有了Windows的安装包(安装后直接有了相应的头文件、库文件等,无需经由代码编译)。在这里要说声抱歉,直接经由代码编译有很多问题,总是编译不过,所以暂时使用安装包,待后面代码编译通过后再使用代码包。(注意,编译32位boost程序时安装32位的python,编译完成后再卸载,然后再安装64位的python,继续进行64位boost的编译,反之亦然)

        至此,安装boost所需要的相关第三方库已经准备完成,现在正式开始boost 1.46.1的安装过程:

        1)通过boost网站下载最新的boost源代码包boost_1_46_1.tar.gz并解压;

        2)用UltraEdit打开boost_1_46_1\boost_1_46_1\tools\build\v2目录下的user-config.jam文件,并在最后增加两行“using mpi ;”(注意,mpi与;之间有一个空格)、“using python : 3.2 : c:\\python32 ;”(注意,3.2与;之间有一个空格,另外,3.2为python的版本号(只需要主版本号与次版本号),c:\\python32为python的安装目录,windows下需要将路径的\符号转换为\\)

        3)通过vs2010的“Visual Studio Command Prompt (2010)”(编译32位)、“Visual Studio X64 Win64 Command Prompt (2010)”(编译64位)菜单项进入vs2010命令行,并进入解压后的boost_1_46_1\boost_1_46_1目录;

        4)执行bootstrap.bat命令(只需要执行一次即可);

        5)x86/x64下的debug/release编译命令分别是:

             a)x86 debug
                  bjam --prefix=e:\build\boost\1.46.1\x86\debug stage toolset=msvc-10.0 variant=debug link=shared address-model=32 threading=multi runtime-link=shared -s ICU_PATH=E:\build\icu4c\4.8\x86\debug install

              b)x86 release
                    bjam --prefix=e:\build\boost\1.46.1\x86\release stage toolset=msvc-10.0 variant=release link=shared address-model=32 threading=multi runtime-link=shared -sICU_PATH=E:\build\icu4c\4.8\x86\release install

               c)x64 debug
                    bjam --prefix=e:\build\boost\1.46.1\x64\debug stage toolset=msvc-10.0 variant=debug link=shared address-model=64 threading=multi runtime-link=shared -sICU_PATH=E:\build\icu4c\4.8\x64\debug install

               d)x64 release
                    bjam --prefix=e:\build\boost\1.46.1\x64\release stage toolset=msvc-10.0 variant=release link=shared address-model=64 threading=multi runtime-link=shared -sICU_PATH=E:\build\icu4c\4.8\x64\release install
         6)其中,--prefix设置boost安装目录;stage表示只生成库文件(dll与lib文件);toolset指定编译器,vs2010就是msvc-10.0,vs2005/vs2008分别是msvc-8.0与msvc-9.0;variant决定编译什么版本;link决定使用静态库还是动态库,shared是动态库,static是静态库;address-model决定地址长度,即32还是64位程序;threading决定使用单线程(single)还是多线程(multi)库;runtime-link决定是静态(static)还是动态(shared)链接C/C++标准库;-s ICU_PATH设置icu4c的路径;install会生成包含头文件的include目录。

        至此,windows 7(64位)系统下使用vs2010完全编译boost 1.46.1完成(含x86/x64的debug与release版本)。

转自:http://china.ygw.blog.163.com/blog/static/68719746201152485054104/


花下眠工作室: http://huaxiamian.cc
分享到:
评论

相关推荐

    windows下编译好的boost库

    标题"windows下编译好的boost库"意味着这个压缩包包含了已经为Windows平台预先编译好的Boost库文件。通常,Boost库需要使用Boost.Build或Bjam工具来配置和编译,这个过程可能涉及到选择适当的编译器(如Visual ...

    boost静态库VS2010编译1.55版本

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

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

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

    arm架构下的boost库文件

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

    windows已编译好的boost库 在xp下测试成功

    标题"windows已编译好的boost库 在xp下测试成功"意味着这个压缩包提供了一个已经为Windows操作系统,特别是Windows XP,编译好的Boost库版本。这通常节省了开发者自行编译的时间和精力,因为Boost库的编译过程可能...

    boost_1_73_0编译好的静态库文件版本

    在这个“boost_1_73_0编译好的静态库文件版本”中,我们讨论的是Boost库的1.73.0版本,该版本已经过编译并打包为静态库,适用于Windows 10操作系统,且与Visual Studio 2019 v142平台工具集兼容。 首先,Boost库...

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

    总之,Boost库1.68版本的Windows编译版为开发者提供了跨平台的C++增强功能,其编译产物(dll和lib)可以在VS2017环境下无缝集成,为各种复杂问题提供了解决方案。在使用时,根据项目需求选择合适的库类型,并正确...

    在VS2005中安装BOOST库

    在 Windows 下,BOOST 库使用自己的 bjam 工具通过命令行进行编译,因此需要设置好 VC 的编译器环境变量。如果从 VS2005 的工具菜单进入命令提示窗口,需要运行 Visual Studio 中 C++ 目录下的环境 vcvarsall.bat ...

    Windows和Solaris上Boost安装和编译

    Boost库广泛应用于跨平台的软件开发,包括Windows和Unix-like系统,如Solaris。以下是对Boost在Windows和Solaris平台上安装和编译的详细过程。 **Windows上的Boost安装和编译** 1. **下载Boost**: 首先,你需要...

    Linux boost库安装、编译问题小记

    环境: Linux s12084 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux...在windows 平台, linux 平台下编译都很顺利。hp aCC 也宣称对 boost 1.35 完全支持 。  全部编译是很痛苦的过程

    VS2013编译的boost 1.60库,含32位和64位的动态库和静态库

    Boost库是C++编程领域中一个非常重要的开源库集合,由全球C++开发者社区共同维护和发展。Boost 1.60版本是这个系列中的一个重要里程碑,它包含了丰富的库组件,旨在提升C++程序员的效率,提供更多的功能选择,并且与...

    boost静态库win10 mingw730_64编译

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

    boost windows编译库和头文件

    windows 下vs2010编译的boost静态库文件和头文件,可直接在vs工程中引用。

    boost1.71在vs2015下全编译

    编译完成后,Boost库会被编译到`BOOST_ROOT\stage\lib`目录下,你可以看到`.lib`文件,这些是编译好的静态库。同时,`include`文件夹中的头文件也已经准备就绪,可以在项目中引用。 6. **集成到项目**: - 将`...

    Boost1.75编译好的版本

    Boost库是C++编程语言中的一个著名开源库,它提供了大量的高效、跨平台的工具集,旨在提升C++的灵活性和功能性。Boost1.75是这个库的一个特定版本,发布于2021年4月6日。这个版本包含了针对32位和64位操作系统的支持...

    boost库boost库boost库boost库

    1. **跨平台**:Boost库在多种操作系统上都得到了广泛的测试和验证,包括Windows、Linux、Mac OS等,确保了代码的可移植性。 2. **兼容性**:Boost库与C++标准库相兼容,许多Boost库后来被采纳为C++标准库的一部分...

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

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

    VS2008编译boost1.38库图文教程

    本文档是一个关于如何在Visual Studio 2008环境下编译Boost库1.38版本的教程,适合对C++编程有一定基础,需要使用Boost库的开发者参考。Boost是一个开源的C++库集合,提供了大量高质量的、符合C++标准的库,可以极大...

    boost编译工具 C++

    5. 编译完成后,Boost库会被安装到指定的目录,通常是在源代码目录的"stage"子目录下。 在使用Boost库时,开发者需要注意以下几点: - Boost库并非所有的组件都必须一起编译。可以根据项目需求,选择性地编译需要...

Global site tag (gtag.js) - Google Analytics