boost在DevC++中的安装过程
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++中的安装过程相关推荐
- 在电脑上安装python的步骤-python中pygame安装过程(超级详细)
安装时是需要设置python环境变量的,下载python的时候底下有个小框框(没有默认选中) Add Python 3.7 to PATH需要选择的,如果没有选择的话,需要自己设置,我一般比较懒,卸载 ...
- 从源码角度解析Android中APK安装过程
从源码角度解析Android中APK的安装过程 1. Android中APK简介 Android应用Apk的安装有如下四种方式: 1.1 系统应用安装 没有安装界面,在开机时自动完成 1.2 网络下载 ...
- 【转】Android中APK安装过程及原理解析
应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作.APK是Android Package的缩写,即Android安装包.APK是类似Symbian ...
- Android中APK安装过程及原理解析
来自华为内部资料 应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作.APK是Android Package的缩写,即android安装包.APK是 ...
- Geant4在Ubuntu(WSL)中,安装过程详解,附Geant4一键安装脚本
背景(撰写本攻略的缘由) 本文是 Geant4 及ROOT 在windows子系统(WSL)中的快速安装 的姊妹篇.上文应该是全网第一篇中文的在WSL中安装Geant4的教程. 当时笔者还很年轻,对L ...
- 林子雨教程中sqoop安装过程时区问题解决
https://blog.csdn.net/Flyfish111222/article/details/53143499 http://dblab.xmu.edu.cn/blog/install-sq ...
- 如何在简中版 MathType 安装过程中,就能输入产品密匙?
该问转载于:https://bbs.kafan.cn/thread-2031670-1-1.html 感谢原创作者提供的分享!本人也做一次搬运工,将好的东西分享给大家. 之前的三种方法见下面的地址: ...
- 计算机主机安装,解决方案:说明的计算机主机安装过程_IT /计算机_信息
计算机主机安装过程的说明ECMCHINA安排了计算机主机安装过程.注意:用双手触摸硬件之前,请先清除身上的静电.注意:用手触摸硬件之前,请先清除身上的静电.方法是用手触摸大块金属或用自来水洗手.方法是 ...
- 在 ubuntu 中设置安装 boost 库
c++ 编程中有时候要用到 Boost 库,这里总结一下安装的过程. 一.平台 ubuntu 16.04 Boost_1_65_1 二.安装 1.下载安装文件. 1).http://www.boost ...
最新文章
- Linux学习之setjmp和longjmp函数
- 鸟哥的Linux私房菜基础学习篇(第二版)第十二章课后习题与答案
- 计算机应用基础白雪梅,白雪|
- matlab imcrop 对应python函数_Python精讲Numpy基础,大牛笔记详细解释
- [C++ STL algorithm] lower_bound、upper_bound、unique的本质
- 小程序wx.uploadFile 显示errMsg: uploadFile:fail Error: Parse Error
- 《阿凡达》3月12日内地重映:部分影院已开启预售
- parallels desktop 缺少组件_厦门100W5折电脑太阳能光伏组件,100W293mm*418mm*70mmMP4车载太阳能板...
- Python 3.10 明年发布,看看都有哪些 PEP ?
- 打印快递面单pdf_如何开通使用拼多多电子面单?
- 高效使用使用SQL缓存依赖
- sqlite如何与mysql连接数据库连接_c#中怎么连接到sqlite数据库?
- nuget的原理_从零开始学习 dotnet 编译过程和 Roslyn 源码分析
- 一台计算机要两个内网,局域网如何在一台电脑上设置两个IP地址
- Java 编程题自动评分技术的研究与实现(一)
- 基础SQL第二课:约束
- 小米盒子3增强版 android,小米盒子3增强版拆机评测 怎么样?好不好?
- python实现Kmeans算法
- python3连接mysql获取ansible动态inventory脚本
- 你以为 Snapchat 做的是社交,但它却说自己是一家相机公司
热门文章
- 【错误记录】Flutter 构建报错 ( Error: Method not found: ‘CupertinoModalPopupRoute‘. | 下载最新 Flutter SDK 版本 )
- 【C 语言】C 字符串 ( 表示方法 | strcpy | strcat | strlen | strcmp )
- 【约束布局】ConstraintLayout 偏移 ( Bias ) 计算方式详解 ( 缝隙比例 | 计算公式 | 图解 | 测量图 + 公式 )
- 【Android 应用开发】Android 开发错误集锦
- stm32 输出PWM
- JQuery Deferred 对象
- 如何运维能让网站稳定高效--稳定篇
- 在ubuntu 11.10 64位 上安装adobe flash player
- 选择排序之——简单选择排序(c/c++)
- Socket 编程概述