日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

boost在DevC++中的安装过程

發(fā)布時間:2025/6/15 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 boost在DevC++中的安装过程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Boost的源碼主要分為兩類:

一類是源碼都在頭文件中源碼。只用這類源碼只需要包含特定的頭文件即可。

一類是源碼包含在頭文件和源文件中。想要使用該類源碼需要連接該頭文件對應的動態(tài)鏈接庫文件。

第二類的源碼主要有以下幾類:

·?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編譯器來對第二種源碼進行編譯生成動態(tài)鏈接庫:

DEV-C++所帶的編譯器gcc來編譯BOOST庫。

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

為了編譯BOOST,首先要編譯bjam,然后用bjamgcc來編譯出BOOST二進制庫。

以下為具體步驟:

1。設(shè)置GCC的環(huán)境變量PATH。

在我的電腦上點擊右鍵,選擇Properties菜單項。然后在彈出的對話框中選擇Advanced頁,點擊Environment Variables按鈕。

之后進行如下設(shè)置選擇PATH,然后點擊Edit按鈕,在最后加上DEV-C++編譯器的路徑,如D:/Program Files/DEV-CPP/Bin,路徑之間用分號分隔。 設(shè)置完畢點擊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庫就開始編譯了。整個過程會持續(xù)四五十分鐘左右。生成的庫回放在build目錄下,如果你想放在不同的目錄下,可以在命令行參數(shù)--build-dir指定。

(編譯完成之后會在duild-dir指定目錄中找到編譯完成的動態(tài)鏈接庫文件。)

4.使DevC++包含boost

Dev-C++的工具->編譯選項->目錄->C++包含文件中添加boost文件夾的上級目錄,如E:/clib/boost_1_42_0

?

?

、/

對上面兩類的源碼進行使用的例子:

例子1:該例子使用一個lambda的頭文件

#include <boost/lambda/lambda.hpp>???//只要包含該頭文件即可,就能使用該頭文件中的所有函數(shù)

#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的動態(tài)鏈接庫

步驟如下:

首先你需要建立一個project,而不能只是編譯單個的c++文件,因為在dev c++中,只有在project中才能設(shè)置linker的參數(shù)。建立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

?

總結(jié)

以上是生活随笔為你收集整理的boost在DevC++中的安装过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。