boost在DevC++中的安装过程

来源:互联网 发布:今晚聊聊车淘宝店名称 编辑:程序博客网 时间:2024/04/29 06:57

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库。

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

为了编译BOOST,首先要编译bjam,然后用bjamgcc来编译出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;

}


经测试在windows平台下编译比Linux慢很多,而且运行起来没有Linux平台下快,建议在Linux学校Boost

0 0
原创粉丝点击