VS2008下直接安装使用Boost库1.46.1版本号
????? Boost庫(kù)是一個(gè)可移植、提供源碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的發(fā)動(dòng)機(jī)之中的一個(gè)。 Boost庫(kù)由C++標(biāo)準(zhǔn)委員會(huì)庫(kù)工作組成員發(fā)起,當(dāng)中有些內(nèi)容有望成為下一代C++標(biāo)準(zhǔn)庫(kù)內(nèi)容。在C++社區(qū)中影響甚大,是不折不扣的“準(zhǔn)”標(biāo)準(zhǔn)庫(kù)。 Boost因?yàn)槠鋵?duì)跨平臺(tái)的強(qiáng)調(diào),對(duì)標(biāo)準(zhǔn)C++的強(qiáng)調(diào),與編寫(xiě)平臺(tái)無(wú)關(guān)。大部分boost庫(kù)功能的使用僅僅需包含對(duì)應(yīng)頭文件就可以,少數(shù)(如正則表達(dá)式庫(kù),文件系統(tǒng)庫(kù)等)須要鏈接庫(kù)。但Boost中也有非常多是實(shí)驗(yàn)性質(zhì)的東西,在實(shí)際的開(kāi)發(fā)中有用須要慎重。boost 在一些播放軟件和音效中指增強(qiáng),比方Bass Boost,低音增強(qiáng)。
1.下載最新版的BOOST庫(kù),當(dāng)前最新版為1.46.1(2011-3-12公布),下載鏈接地址:http://sourceforge.net/projects/boost/files/boost/1.46.1/
2.解壓到硬盤(pán)上,其文件夾構(gòu)造為
boost_1_46_1/?................................boost根文件夾????index.htm?.....................?www.boost.org?站點(diǎn)首頁(yè)?
???boost/?..............................全部的Boost頭文件?
???lib/?.................................預(yù)編譯的二進(jìn)制庫(kù)?
???libs/?......................庫(kù)的Tests,?.cpps,?docs等等?
?????index.html?.............................庫(kù)文檔開(kāi)始處?
?????algorithm/?
?????any/?
?????array/?
?????????????????????…more?libraries…?
???status/?.........................Boost-wide?test?suite?
???tools/?...........有用工具,?e.g.?bjam,?quickbook,?bcp?
???more/?.......................................一些文檔?
???doc/?...............................全部庫(kù)文檔的一部分?
3.打開(kāi)根文件夾下的index.html,在上面的“Getting Started”有介紹怎么開(kāi)始使用Boost的,大部分的Boost庫(kù)僅僅須要包括頭文件就可以,少部分須要編譯鏈接。下面是必須編譯的Boost庫(kù):
??? * Boost.Filesystem
??? * Boost.GraphParallel
??? * Boost.IOStreams
??? * Boost.MPI
??? * Boost.ProgramOptions
??? * Boost.Python
??? * Boost.Regex
??? * Boost.Serialization
??? * Boost.Signals
??? * Boost.System
??? * Boost.Thread
??? * Boost.Wave
另外,一些庫(kù)能夠是可選擇編譯的:
??? * Boost.DateTime (僅僅有當(dāng)你須要使用它的to_string/from_string或者serialization features, or if you're targeting Visual C++ 6.x or Borland.
??? * Boost.Graph (僅僅有當(dāng)你傾向解析 GraphViz 文件)
??? * Boost.Math (the TR1 and C99 cmath functions)
??? * Boost.Random (當(dāng)你須要使用random_device的時(shí)候)
??? * Boost.Test (can be used in “header-only” or “separately compiled” mode)
4.下面開(kāi)始一個(gè)無(wú)需編譯Boost,直接使用頭文件的演示樣例:
①打開(kāi)Visual Studio 2008,新建Visual C++project,基于Win32控制臺(tái)程序,project名為example,確定之后,在彈出的對(duì)話框中“應(yīng)用程序設(shè)置”打鉤上“控制臺(tái)應(yīng)用程序”和“空項(xiàng)目”,點(diǎn)“完畢”;
②在“解決方式資源管理器”右擊exampleproject,選擇“屬性”→“C/C++”→“常規(guī)”→“附加包括文件夾”,輸入剛才解壓Boost的文件夾,比方“F:/MyCode/BOOST/boost_1_46_1”,例如以下圖所看到的:
③右擊exampleproject下的“源文件”→“加入”→“新建項(xiàng)”→左邊的“代碼”→選中右邊的“C++文件(.cpp)”,文件名稱為example,點(diǎn)“加入”,輸入下面代碼:
#include?<iostream>?
#include?<iterator>?
#include?<algorithm>?
?
int?main()?
{?
????using?namespace?boost::lambda;?
????typedef?std::istream_iterator<int>?in;?
?
????std::for_each(?
????????in(std::cin),?in(),?std::cout?<<?(_1?*?3)?<<?"?"?);?
}?
④點(diǎn)擊菜單條上“生成”→“生成解決方式”,正常的話會(huì)編譯通過(guò),按F5可看結(jié)果,結(jié)果例如以下圖所看到的:
這個(gè)example代碼的功能是從標(biāo)準(zhǔn)輸入中讀取一系列整型,然后使用boost::lambda使之每一個(gè)數(shù)乘以3,再把結(jié)果寫(xiě)進(jìn)標(biāo)準(zhǔn)輸出。
5.若是須要用到那些必須得編譯鏈接的庫(kù),那么就得組建編譯Boost庫(kù)了。官方文檔上介紹說(shuō)能夠使用安裝版,或者自己編譯源碼,特別介紹推薦在Microsoft Visual Studio開(kāi)發(fā)環(huán)境下使用安裝版,由于安裝版能夠直接下載,而且?guī)в蓄A(yù)編譯好的庫(kù),節(jié)省自己編譯源碼的麻煩。在這里,由于我使用的是Visual Studio 2008,故欲試試使用安裝版。安裝版是boostpro站點(diǎn)制作的,安裝版不是跟官方的Boost同步的,會(huì)比較晚一些時(shí)間才會(huì)公布出來(lái)。當(dāng)前最新版BoostPro 1.46.1 Installer (197K .exe),下載地址:http://www.boostpro.com/download/
5.1執(zhí)行安裝版,一路“I Agree”,注意會(huì)連接網(wǎng)絡(luò),必須放行。之后會(huì)彈出選擇下載Boost C++庫(kù)1.46.1的鏡像地址,默認(rèn)就好,繼續(xù)“Next”,彈出選擇默認(rèn)的編譯類型,在左側(cè)選擇“Visual C++ 9”,在右側(cè)選擇類型,我們一般所用到的執(zhí)行庫(kù)比較多使用多線程,能夠在上面的exampleproject看屬性,例如以下圖所看到的:
為此,我們僅僅需選擇上面四個(gè)選項(xiàng),再依據(jù)動(dòng)態(tài)鏈接和靜態(tài)鏈接需求進(jìn)行選擇,例如以下圖所看到的:
接下去就是選擇組件安裝,沒(méi)啥問(wèn)題就默認(rèn)了,下一步選擇路徑,接著就開(kāi)始下載了,例如以下圖所看到的:
由于是連接網(wǎng)絡(luò)下載,所以得一段比較長(zhǎng)的時(shí)間,下載完之后就會(huì)自己主動(dòng)安裝好,在設(shè)定的文件夾下就有個(gè)lib文件夾,里面就是編譯好的庫(kù)。
5.2如今讓我們測(cè)試一下那些須要鏈接才干使用的庫(kù):
①打開(kāi)上面建立的exampleproject,將其cpp文件代碼改為例如以下:
#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[2]?<<?std::endl;?
????}?
}?
此時(shí),若是生成解決方式的話,就會(huì)提示 fatal error LNK1104: 無(wú)法打開(kāi)文件“l(fā)ibboost_regex-vc90-mt-gd-1_46_1.lib”
②右鍵example解決方式,選擇“屬性”→“配置屬性”→“鏈接器”→“附加庫(kù)文件夾”,加入安裝版下載好的lib庫(kù)文件夾路徑,例如以下圖所看到的:
③在菜單條“生成”下拉選擇“生成解決方式”,無(wú)警告無(wú)錯(cuò)誤通過(guò)。將以下文字保存成文本文檔,文件名稱為jayne.txt,內(nèi)容例如以下:
From:?Rita?Marlowe?
Subject:?Will?Success?Spoil?Rock?Hunter??
---?
See?subject.?
然后保存到project文件夾的Debug文件夾下。接著Win+R輸入CMD進(jìn)入控制臺(tái),cd 轉(zhuǎn)到此Debug文件夾下,輸入example < jayne.txt命令,例如以下圖所看到的:
回車之后,文本文檔里面Subject主題的內(nèi)容就會(huì)被正則匹配出來(lái),例如以下圖所看到的:
也能夠不進(jìn)入CMD控制臺(tái),直接在example解決方式右鍵“屬性”→“調(diào)試”→“命令參數(shù)”,輸入< jayne.txt ,按“確定”,直接Ctrl+F5執(zhí)行程序,結(jié)果例如以下圖所看到的:
6.最后總結(jié),Visual Studio環(huán)境的話能夠直接下載安裝版的,省去麻煩的編譯過(guò)程,可是不帶幫助文檔,這點(diǎn)得自己再?gòu)墓俜秸军c(diǎn)下載了,眼下有漢化Boost文檔,另一些不錯(cuò)的中文站點(diǎn),列舉例如以下:
boost文檔漢化:http://code.google.com/p/boost-doc-zh/
在線漢化版文檔:http://www.cppprog.com/boost_doc/
?
附上我編譯好的庫(kù)boost1.46.1_VS2008多線程靜態(tài)庫(kù)版本號(hào): http://download.csdn.net/source/3147458
轉(zhuǎn)載于:https://www.cnblogs.com/bhlsheji/p/4280459.html
總結(jié)
以上是生活随笔為你收集整理的VS2008下直接安装使用Boost库1.46.1版本号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 背包九讲之五(二维费用的背包问题)
- 下一篇: 加快modelsim仿真速度的方法(原创