Boost的源码主要分为两类:

一类是源码都在头文件中源码。只用这类源码只需要包含特定的头文件即可。

一类是源码包含在头文件和源文件中。想要使用该类源码需要连接该头文件对应的动态链接库文件。

第二类的源码主要有以下几类:

· Boost.Filesystem

· Boost.GraphParallel

· Boost.IOStreams

· Boost.MPI

· Boost.ProgramOptions

· Boost.Python (see the Boost.Python build documentation before building and installing it)

· Boost.Regex

· Boost.Serialization

· Boost.Signals

· Boost.System

· Boost.Thread

· Boost.Wave

· Boost.DateTime

· Boost.Graph

· Boost.Math

· Boost.Random

· Boost.Test

如何利用DevC++中的gcc编译器来对第二种源码进行编译生成动态链接库:

用DEV-C++所带的编译器gcc来编译BOOST库。

首先下载BOOST库http://sourceforge.net/project/showfiles.php?group_id=7586, 然后解压。

为了编译BOOST,首先要编译bjam,然后用bjam和gcc来编译出BOOST二进制库。

以下为具体步骤:

1。设置GCC的环境变量PATH。

在我的电脑上点击右键,选择Properties菜单项。然后在弹出的对话框中选择Advanced页,点击Environment Variables按钮。

之后进行如下设置,选择PATH,然后点击Edit按钮,在最后加上DEV-C++编译器的路径,如D:/Program Files/DEV-CPP/Bin,路径之间用分号分隔。 设置完毕点击OK按钮保存。

2。编译bjam。打开一个命令窗口,进入路径D:/boost_1_42_0/tools/jam/src(只要找到build.bat命令即可),运行命令

build.bat gcc

编译完后会生成bin.ntx86目录,里面有bjam.exe。把bjam.exe拷贝到BOOST库的根目录,如E:/clib/boost_1_42_0

3。利用bjam编译BOOST

在BOOST库的根目录下运行bjam --build-dir=build --toolset=gcc, BOOST库就开始编译了。整个过程会持续四五十分钟左右。生成的库回放在build目录下,如果你想放在不同的目录下,可以在命令行参数--build-dir指定。

(编译完成之后会在duild-dir指定目录中找到编译完成的动态链接库文件。)

4.使DevC++包含boost

在Dev-C++的工具->编译选项->目录->C++包含文件中添加boost文件夹的上级目录,如E:/clib/boost_1_42_0

、/

对上面两类的源码进行使用的例子:

例子1:该例子使用一个lambda的头文件

#include <boost/lambda/lambda.hpp>   //只要包含该头文件即可,就能使用该头文件中的所有函数

#include <iostream>

#include <iterator>

#include <algorithm>

using namespace std;

int main()

{

using namespace boost::lambda;

typedef istream_iterator<int> in;

for_each(in(cin), in(), cout << (_1 * 3) << " ");

return 0;

}

例子2:该例子使用正则表达式regex.hpp,编译完成之后需要链接regex的动态链接库

步骤如下:

首先你需要建立一个project,而不能只是编译单个的c++文件,因为在dev c++中,只有在project中才能设置linker的参数。建立project后,“Project"-->"Project Options"-->"Parameters"选项卡--->在linker框中添加:"-lboost_regex-mt",告诉linker在链接的时候,链接regex库。That's Ok!

#include <boost/regex.hpp>

#pragma comment(lib,"D:/boost/boost_1_42_0/stage/libboost_regex-meg34-mt.lib")

#include <iostream>

#include <string>

int main()

{

std::string line;

boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );

while (std::cin)

{

std::getline(std::cin, line);

boost::smatch matches;

if (boost::regex_match(line, matches, pat))

std::cout << matches[1]<<" "<<matches[2] << std::endl;

}

return 0;

}

参考文献:

http://www.cnblogs.com/vilyLei/articles/1709941.html

http://hi.baidu.com/nkhzj/blog/item/89e675cb56d5771abe09e6a1.html

http://www.boost.org/doc/libs/1_46_0/more/getting_started/windows.html#header-only-libraries

boost在DevC++中的安装过程相关推荐

  1. 在电脑上安装python的步骤-python中pygame安装过程(超级详细)

    安装时是需要设置python环境变量的,下载python的时候底下有个小框框(没有默认选中) Add Python 3.7 to PATH需要选择的,如果没有选择的话,需要自己设置,我一般比较懒,卸载 ...

  2. 从源码角度解析Android中APK安装过程

    从源码角度解析Android中APK的安装过程 1. Android中APK简介 Android应用Apk的安装有如下四种方式: 1.1 系统应用安装 没有安装界面,在开机时自动完成 1.2 网络下载 ...

  3. 【转】Android中APK安装过程及原理解析

    应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作.APK是Android Package的缩写,即Android安装包.APK是类似Symbian ...

  4. Android中APK安装过程及原理解析

    来自华为内部资料 应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作.APK是Android Package的缩写,即android安装包.APK是 ...

  5. Geant4在Ubuntu(WSL)中,安装过程详解,附Geant4一键安装脚本

    背景(撰写本攻略的缘由) 本文是 Geant4 及ROOT 在windows子系统(WSL)中的快速安装 的姊妹篇.上文应该是全网第一篇中文的在WSL中安装Geant4的教程. 当时笔者还很年轻,对L ...

  6. 林子雨教程中sqoop安装过程时区问题解决

    https://blog.csdn.net/Flyfish111222/article/details/53143499 http://dblab.xmu.edu.cn/blog/install-sq ...

  7. 如何在简中版 MathType 安装过程中,就能输入产品密匙?

    该问转载于:https://bbs.kafan.cn/thread-2031670-1-1.html 感谢原创作者提供的分享!本人也做一次搬运工,将好的东西分享给大家. 之前的三种方法见下面的地址: ...

  8. 计算机主机安装,解决方案:说明的计算机主机安装过程_IT /计算机_信息

    计算机主机安装过程的说明ECMCHINA安排了计算机主机安装过程.注意:用双手触摸硬件之前,请先清除身上的静电.注意:用手触摸硬件之前,请先清除身上的静电.方法是用手触摸大块金属或用自来水洗手.方法是 ...

  9. 在 ubuntu 中设置安装 boost 库

    c++ 编程中有时候要用到 Boost 库,这里总结一下安装的过程. 一.平台 ubuntu 16.04 Boost_1_65_1 二.安装 1.下载安装文件. 1).http://www.boost ...

最新文章

  1. Linux学习之setjmp和longjmp函数
  2. 鸟哥的Linux私房菜基础学习篇(第二版)第十二章课后习题与答案
  3. 计算机应用基础白雪梅,白雪|
  4. matlab imcrop 对应python函数_Python精讲Numpy基础,大牛笔记详细解释
  5. [C++ STL algorithm] lower_bound、upper_bound、unique的本质
  6. 小程序wx.uploadFile 显示errMsg: uploadFile:fail Error: Parse Error
  7. 《阿凡达》3月12日内地重映:部分影院已开启预售
  8. parallels desktop 缺少组件_厦门100W5折电脑太阳能光伏组件,100W293mm*418mm*70mmMP4车载太阳能板...
  9. Python 3.10 明年发布,看看都有哪些 PEP ?
  10. 打印快递面单pdf_如何开通使用拼多多电子面单?
  11. 高效使用使用SQL缓存依赖
  12. sqlite如何与mysql连接数据库连接_c#中怎么连接到sqlite数据库?
  13. nuget的原理_从零开始学习 dotnet 编译过程和 Roslyn 源码分析
  14. 一台计算机要两个内网,局域网如何在一台电脑上设置两个IP地址
  15. Java 编程题自动评分技术的研究与实现(一)
  16. 基础SQL第二课:约束
  17. 小米盒子3增强版 android,小米盒子3增强版拆机评测 怎么样?好不好?
  18. python实现Kmeans算法
  19. python3连接mysql获取ansible动态inventory脚本
  20. 你以为 Snapchat 做的是社交,但它却说自己是一家相机公司

热门文章

  1. 【错误记录】Flutter 构建报错 ( Error: Method not found: ‘CupertinoModalPopupRoute‘. | 下载最新 Flutter SDK 版本 )
  2. 【C 语言】C 字符串 ( 表示方法 | strcpy | strcat | strlen | strcmp )
  3. 【约束布局】ConstraintLayout 偏移 ( Bias ) 计算方式详解 ( 缝隙比例 | 计算公式 | 图解 | 测量图 + 公式 )
  4. 【Android 应用开发】Android 开发错误集锦
  5. stm32 输出PWM
  6. JQuery Deferred 对象
  7. 如何运维能让网站稳定高效--稳定篇
  8. 在ubuntu 11.10 64位 上安装adobe flash player
  9. 选择排序之——简单选择排序(c/c++)
  10. Socket 编程概述