`
tkxhw29a
  • 浏览: 13563 次
最近访客 更多访客>>
sik
社区版块
存档分类
最新评论

编译Boost 1.38

 
阅读更多

编译Boost 1.38
2010年10月28日
  首先,我们到http://www.boost.org去下载 boost1.38的代码包。得到一个压缩包boost_1_38_0.zip,你也可以选择下载其它格式的。
  然后我们把它解压出来,我把它解压在D盘根目录下面:
  首先,我们需要到bjam.exe这是一个用于编译的工具。
  接下来我将会在Visual Studio 2008 SP1简体中文专业版中编译Boost1.38。我们去开始菜单,使用管理员身份运行Visual Studio 2008 命令提示(非Vista请无视):
  然后我们通过cd等DOS指令进入到:
  Setting environment for using Microsoft Visual Studio 2008 x86 tools.
  C:\Windows\system32>d:
  D:\>cd boost_1_38_0
  D:\boost_1_38_0>cd tools
  D:\boost_1_38_0\tools>cd jam
  D:\boost_1_38_0\tools\jam>cd src
  D:\boost_1_38_0\tools\jam\src>
  然后我们在这个src目录下面执行build.bat:
  D:\boost_1_38_0\tools\jam\src>build.bat
  然后我们稍等一小会儿等待系统自动为我们生成编译工具。
  生成完毕之后src目录下会出现一个bin.ntx86目录。进入这个目录会看见bjam.exe。
  我们把这个bjam.exe拷贝到boost 1.38的根目录即我的D:\boost_1_38_0。
  同上面的方法打开Visual Studio 2008 命令提示,进入D:\boost_1_38_0。通过如下命令我们就可以查看当前版本的Boost的哪些组件需要编译了,因为Boost大部分组件都是以模板的形式存在的,不需要编译:
  D:\boost_1_38_0>bjam --show-libraries
  The following libraries require building:
  - date_time
  - filesystem
  - function_types
  - graph
  - iostreams
  - math
  - mpi
  - program_options
  - python
  - regex
  - serialization
  - signals
  - system
  - test
  - thread
  - wave
  我们再去D盘根目录创建一个我们的目标安装文件夹:D:\BoostLib 1_38
  接下来使用默认的方式将Boost1.38完整编译到目标文件夹:
  D:\boost_1_38_0>bjam install --prefix="D:\BoostLib 1_38" debug
  剩下的参数都用默认的了。敲下回车,好了,开始耐心等待编译完成吧。在此之前请确认您的D盘的剩余空间,要完整编译需要大约3G的剩余空间,主要是会生成很多临时文件,编译连接完之后我们可以删除掉的。曾经在网上看到说需要12G的空间,编译需要好几个小时,可能是现在不一样了吧,呵呵,电脑配置越来越好了。而且整个编译过程也需要一定的时间,编译Debug版本大约需要40-80分钟不等,Release也差不多,根据不同的机器配置会有所不同,当然配置越好越快啦。
  编译的过程中会出现很多的Warning,你可以无视它们,基本上用于学习的目的,你很难很因为这些Warning而使得程序挂掉。
  warning: No toolsets are configured.
  warning: Configuring default toolset "msvc".  // 这里由于我们没有选择编译器,所以这里默认选择了VC,由于我们是在Visual Studio 2008的命令提示下面,因此自动选择了VC9。VC2005也是同样的道理,我们选择VC2005的命令提示符就可以了。
  warning: If the default is wrong, your build may not work correctly.
  warning: Use the "toolset=xxxxx" option to override our guess.
  warning: For more configuration options, please consult
  编译的过程中会自动的帮你Copy一些诸如模板头文件等到目标文件夹去:
  这个Copy过程大约需要三分钟。完成之后便开始编译:
  期间会有一些警告,这些都可以无视。开始编译之后会在lib文件夹中出现相应的lib和dll文件,并且由于时间的推移会越来越多,这至少说明您的编译过程正在进行中。而且在编译的过程中还会发生COPY行为。
  大家可以看看Boost生成的这些Lib文件,比如boost_regex-vc90-mt-gd-1_38.lib。它的命名很考究的。
  boost代表这是boost库的组件
  regex代表这个是正则表达式的库
  VC90代表它是什么编译器版本
  mt代表它支持多线程/ Multithreads
  gd代表这是debug版本
  1_38代表了Boost的版本号
  是不是很有艺术感呢?
  另外还有一些这样的Lib文件,比如libboost_iostreams-vc90-mt-gd-1_38.lib。它以libboost开头,这表示这些lib是静态库文件,属于静态连接的库文件。它们没有对应的dll文件。同时您也可以注意到它们都比只具备索引功能的lib大得多。跟动态库版本有啥区别不用我解释了吧?
  O(∩_∩)O~
  Debug版本编译完我生成了107个文件,你有多少个呢?
  好了,接下来我们使用类似的步骤来编译Release版本的Boost:
  Release版本的Lib和Dll的命名和Debug版本的差别就在于没有gd,比如:boost_math_c99f-vc90-mt-1_38.lib。
  在等待了和编译Debug差不多的时间之后,我们的Boost就成功编译了。
  为了符合我们通常SDK的习惯,我们把D:\BoostLib 1_38\include\boost-1_38\下面的boost目录全部拷贝到include目录下面,然后再把boost-1_38这个空的文件夹删除。
  现在我们的所有头文件都在include文件夹下面了,保留boost文件夹只是为了符合boost的习惯;所有的lib和dll都位于lib文件夹下面。
  但是整个过程还没有结束,我们还需要配置IDE。打开Visual Studio 2008 SP1(其它VC开发平台也类似),选择"工具",再选择"选项",然后在"项目和解决方案"下面选择vc++目录,在"包含目录"下面添加Boost的include路径:
  在库文件下面添加Boost的lib路径:
  现在Boost的安装目录已经膨胀到了1.04G:
  源代码的目录,即D:\boost_1_38_0已经变得硕大无比,因为生成了大量的临时文件,我建议您删除该文件夹下面的bin.v2即可。
  爽,编译完成,赶快来段代码,试试:
  #include  #include  using namespace std; using namespace boost; int main() { cout>strBirthday; try { gregorian::date birthday( gregorian::from_simple_string(strBirthday) ); gregorian::date today( gregorian::day_clock::local_day() ); gregorian::days days_alive = today - birthday; if( days_alive < gregorian::days(0) ) { cout<<"哇,还没出生就能用电脑了,真厉害"<<endl; } else { cout<<"您在这个世界上出现了:"<< days_alive.days()<< "天了" << endl; } } catch( gregorian::bad_year& e ) { cerr<< e.what() << endl; } catch( gregorian::bad_day_of_month& e ) { cerr<< e.what() << endl; } catch( gregorian::bad_day_of_year& e ) { cerr<< e.what() << endl; } catch(...) { cerr<<"Error!"<<endl; } system( "pause" ); return 0; }   
  接下来,你就可以好好享受Boost的奇妙了。
分享到:
评论

相关推荐

    VS2008编译boost1.38库图文教程

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

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

    在本资源中,我们关注的是如何编译Boost的静态库,特别是1.58版本。 首先,理解什么是静态库至关重要。静态库是在编译时直接链接到目标程序中的库,这意味着程序在运行时不需要依赖外部库文件,所有的库代码都被...

    VS2008编译Boost_1_47_0指南

    在本篇中,我们将深入探讨如何使用Visual Studio 2008(VS2008)编译Boost库的1.47.0版本。Boost是一个广泛使用的C++库,包含了许多有助于提升效率和功能的工具,适用于各种编程任务。在VS2008环境下编译Boost有助于...

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

    本篇将详细讲解如何在CentOS7环境下编译Boost 1.69版本的静态库和动态库,并探讨其在实际应用中的重要性。 首先,让我们了解Boost库。Boost库是由C++社区开发的一系列开源库,旨在提升C++的效率、灵活性和可移植性...

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

    6. **使用编译好的库**:在项目中使用编译的Boost库时,需要链接对应的动态库(如`-lboost_thread -lboost_system`)或者静态库,并确保库的路径被系统搜索路径(`LD_LIBRARY_PATH`或`DYLD_LIBRARY_PATH`)包含。...

    Windows和Solaris上Boost安装和编译

    以下是对Boost在Windows和Solaris平台上安装和编译的详细过程。 **Windows上的Boost安装和编译** 1. **下载Boost**: 首先,你需要访问Boost官方网站(https://www.boost.org/)下载最新的源代码包。下载完成后,...

    boost静态库win10 mingw730_64编译

    4. **编译Boost**:运行上述命令后,Boost将开始编译指定的库。这个过程可能需要一段时间,因为Boost包含了大量的库。 5. **生成库文件**:编译完成后,生成的静态库文件会位于`boost`源码目录下的`stage\lib`子...

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

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

    boost1.71在vs2015下全编译

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

    boost 1_38

    1. **下载预编译库**:从提供的链接或其他可信源下载Boost 1.38的预编译库。 2. **配置编译器路径**:将Boost的头文件路径添加到项目的编译器搜索路径中。 3. **链接静态库或动态库**:根据项目需求选择链接静态库或...

    S2010下编译boost

    ### S2010下编译Boost的知识点详解 #### 一、背景介绍 Boost库是一组经过同行评审且自由使用的C++源代码库集合,它提供了大量的实用工具和算法,能够极大地提升C++程序的开发效率。对于VS2010这样的IDE来说,正确...

    boost编译资料命令

    ### Boost编译资料命令解析 Boost是一个开源的C++库集合,它提供了许多有用的模板类和函数,可以显著提高开发效率。在实际项目中,为了能够有效地利用Boost库的功能,通常需要对其进行编译以适应不同的操作系统、...

    boost centos7编译好的完成版本可以直接引入使用

    在CentOS7系统上,Boost库的编译和安装对于开发者来说是一项重要的工作,因为这能够使他们直接利用这些库的功能,而无需自己从源代码开始编译。本压缩包提供的"boost_1_68_0"版本,是Boost库的一个稳定版本,已经...

    qt5.2.0编译boost库文件

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

    boost_1_78_0-编译完成的vs-2017-32and64以及使用说明

    在本资源中,我们拥有的是Boost版本1.78.0,它已经针对Visual Studio 2017进行了编译,适配32位和64位系统。这个压缩包包含了必要的编译结果以及使用指南,使得开发者能够更加方便地在VS2017环境下使用Boost库。 ...

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

    Visual Studio 2013是一款广泛使用的IDE(集成开发环境),能够支持包括Boost在内的多种库的编译和调试。 在Boost 1.60中,提供了多个关键库,例如: 1. **智能指针**:如`shared_ptr`, `unique_ptr`和`weak_ptr`...

    编译好的完整boost库

    这个压缩包包含的是一个已经编译好的完整Boost库,它是在Visual Studio 2015环境下编译完成的,版本为1.5.7。 Boost库的1.5.7版本是一个稳定版本,发布于2015年,包含了大量经过充分测试的库组件。Boost库的主要...

Global site tag (gtag.js) - Google Analytics