最近突然對(duì)boost發(fā)生了興趣,但是boost安裝非常麻煩,網(wǎng)上介紹的方法大都不全面,搜到了一篇關(guān)于在其它編譯器安裝boost的方法,試著改為C++Builder2007適用的方法和大家分享,發(fā)布這篇文章之前只做過(guò)簡(jiǎn)單測(cè)試,如有問(wèn)題,請(qǐng)指出。
安裝時(shí)我的電腦只安裝了CodeGear RAD Studio2007,沒(méi)有安裝VS等其它編譯工具,如果你的電腦同時(shí)安裝了其它編譯工具,你需要謹(jǐn)慎,當(dāng)然是否有問(wèn)題我也不知道,你自己研究吧,把最后的結(jié)果貼出來(lái)大家分享。
1.相關(guān)網(wǎng)址
2. 準(zhǔn)備
您可以上boost官方網(wǎng)站(參看1.相關(guān)網(wǎng)址),下載這兩個(gè)文件(既然是免費(fèi),還是官方的好):
boost 1.36.0 的源代碼壓縮文件,推薦下載 7zip 版本:boost_1_36_0.7z”。
boost 編譯工具,請(qǐng)選擇windows下的可執(zhí)行文件:boostjam3.1.161ntx86.zip
下載后,得到源代碼壓縮文件,如果是7zip格式的“boost_1_36_0.7z”,約25M,解壓后,將迅速變?yōu)?75M,但這僅僅是源代碼及文檔的大小,在編譯過(guò)程中,所需的空間更是驚人,請(qǐng)您保證解壓縮后文件所在的磁盤驅(qū)動(dòng)器,至少有2個(gè)G的可用空間(有人說(shuō)需要更大的空間,不過(guò)我用了不到1.9G)。
boost 的編譯工具,可以根據(jù)需要,將編譯之后庫(kù)文件,及不需要編譯的頭文件,統(tǒng)一復(fù)制到指定的目錄,這樣有利于我們得到一個(gè)“干凈”的boost編譯結(jié)果目錄,本文將采用此方法。
下面,我們假設(shè)boost_1_36_0.7z被解壓到“X:\tmp\boost_1_36_0”目錄下,其中“X:”表示您選用的磁盤驅(qū)動(dòng)器盤符, “tmp”是我們事先創(chuàng)建的文件夾,而 “boost_1_36_0”則在解壓以后得到。我們把“X:\tmp\ boost_1_36_0”稱為“boost安裝源路徑”。
接下來(lái),假設(shè)我們希望它boost安裝到“E:\ boost_1_36_0”目錄下,請(qǐng)事先創(chuàng)建好這個(gè)文件夾,我們把這個(gè)路徑,稱為“boost安裝目標(biāo)路徑”。
請(qǐng)解壓“boostjam3.1.161ntx86.zip”文件,得到bjam.exe,將它復(fù)制到boost安裝源路徑,即“X:\tmp\boost_1_36_0”之下。
3. 編譯
步驟1:打開(kāi)“開(kāi)始”菜單,選擇“運(yùn)行”,輸入cmd,進(jìn)入控制臺(tái)窗口,然后在其內(nèi)通過(guò)cd命令,切換到boost安裝源路徑下。本例中為:
“X:\tmp\boost_1_36_0”,則過(guò)程如下:
X: (回車)
cd tmp\boost_1_36_0 (回車)
步驟2:繼續(xù)上步,請(qǐng)?jiān)诳刂婆_(tái)內(nèi)輸入:
bjam showlibraries (回車)
步驟3:正確情況下,將看到以下輸出內(nèi)容:
The following libraries require building:
date_time
filesystem
function_types
graph
iostreams
math
mpi
program
_options
python
regex
serialization
signals
system
test
thread
wave
步驟4:這里列出的是所有需要編譯的boost模塊,但我們將放棄對(duì)以下模塊的編譯: wave、mpi、 python、math、graph。這些模塊的具體含義,大家如有需要,請(qǐng)自行查明。
步驟5:繼續(xù)上步,在控制臺(tái)內(nèi)輸入:
bjam install toolset=borland prefix="E:\boost_1_36_0" debug withoutwave withoutmpi withoutpython withoutmath withoutgraph (回車)
步驟6:請(qǐng)?zhí)貏e注意,要更換為您自己的“boost安裝目標(biāo)路徑”。其它部分作如下說(shuō)明:
步驟7: 是兩個(gè)連續(xù)的減號(hào),=前后均不能夾帶空格,除路徑之外,參數(shù)都是小寫(xiě)字母。
步驟8:toolset 表示采用borland編譯。因此,要正確編譯boost,請(qǐng)您一定事先已安裝C++Builer2007。
步驟9:debug表示我們首先編譯“調(diào)試版”。現(xiàn)在很多人在安裝boost后,使用時(shí)總是提示缺少某個(gè)帶“d”的lib文件,實(shí)際就是缺少這一步,它是C++Builder2007在debug時(shí)所需要的。
步驟10:多個(gè) without 指定了所要放棄編譯的模塊。你也可以根據(jù)你的需要,在此增加或去掉某個(gè)模塊。
步驟11:回車后,控制臺(tái)內(nèi)將出現(xiàn)大量看似奇奇怪怪地文字,最后能看到以下內(nèi)容,就表示成功完成本步:
...failed updating 2 targets.
...skipped 31 targets...
...updated 341 targets...
這個(gè)需要比較長(zhǎng)的時(shí)間,你可以休息一下,做點(diǎn)其它事,時(shí)間多長(zhǎng)取決于你的計(jì)算機(jī)。我花了15分鐘左右。4. release版本
在控制臺(tái)內(nèi)輸入:
bjam install toolset=borland prefix="E:\boost_1_36_0" release withoutwave withoutmpi withoutpython withoutmath withoutgraph (回車)
改變的是“debug”更換為“release”?;剀嚭箝_(kāi)始發(fā)行版的boost庫(kù)編譯。現(xiàn)在網(wǎng)上提供的方法大多都是這一步編譯出的lib文件,即文件名不帶“d”的lib文件,如果你需要將你的項(xiàng)目release就需要這一步。
花費(fèi)的時(shí)間和debug差不多。
5. 更加完美
如果你要完全發(fā)布你的項(xiàng)目,那你需要這一步,否則你會(huì)得到缺少某個(gè)文件名中帶有“s”的lib文件的提示。
如果您的硬盤還有很大的空閑,您可以完整地編譯boost。如果你只是研究boost,你不需要這一步。
boost完全編譯需要比較長(zhǎng)的等待,而且在空間需要的也比較多。我用了一個(gè)小時(shí)左右,時(shí)間長(zhǎng)短取決于你的系統(tǒng)。
完整編譯boost的命令行:
bjam install toolset=borland prefix="您的\boost\安裝\目標(biāo)路徑" buildtype=complete
6. 說(shuō)明
檢查“boost安裝目標(biāo)路徑”,應(yīng)該可以看到兩個(gè)子目錄位于其內(nèi):“include”及“l(fā)ib”,前者保存著所有采用純頭文件形式提供的boost代碼文件;后者則保留著上一步的編譯結(jié)果,這些庫(kù)文件首先可以區(qū)分為以下三種形式:
“動(dòng)態(tài)鏈接庫(kù)”,擴(kuò)展名以.dll結(jié)束
“導(dǎo)入庫(kù)”,擴(kuò)展名以.lib結(jié)束,且文件名以版本號(hào)1_36結(jié)束
“靜態(tài)鏈接庫(kù)”,以擴(kuò)展名.lib結(jié)束。
然后三種形式再次區(qū)分為“發(fā)行版”和“調(diào)試版”,后者的文件名比前者多出一個(gè)“d”修飾。另外我們還可以看到所有庫(kù)文件名中都帶有“mt”字樣,這是表示這些庫(kù)都支持“多線程/Multithreads”。
請(qǐng)保存“boost_1_36_0.7z”及“boostjam3.1.161ntx86.zip”兩個(gè)文件,然后,建議您將 “boost安裝源路徑”下的doc文件夾——這是boost的說(shuō)明文檔——復(fù)制到“boost安裝目標(biāo)路徑”下,然后,您可以放心地刪除“boost安裝源路徑”。
7. 結(jié)束
打開(kāi)C++Builder2007.
7.1. Project-Default Options-C++Builder設(shè)置。在Include Path添加前面的“include\boost1_36”所在的目錄,在Library Path添加“l(fā)ib”所在的目錄。
7.2. Tools-Options設(shè)置。
C++Options-Paths and Directories.在此如上步設(shè)置。
終于結(jié)束了,非常感謝那些在網(wǎng)上無(wú)償發(fā)布技術(shù)的大佬們,是你們讓這個(gè)世界變得更加五彩繽紛。在此也鄙視一下微軟的黑屏計(jì)劃,支持一下番茄花園,雖然這是微不足道的。
測(cè)試一下你的安裝。
#include
#pragma hdrstop
#include "Unit1.h"
//#include
#include
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
boost::regex reg("(I.*)");
bool b=boost::regex_match( "I love ydlchina.", reg);
if(b==true)
ShowMessage("天哪,你成功了!");
}
在debug下運(yùn)行試試,再在release試試。(記得還要在Project Manager或Configuration Manager選release,只有這樣測(cè)試才完全)
安裝時(shí)我的電腦只安裝了CodeGear RAD Studio2007,沒(méi)有安裝VS等其它編譯工具,如果你的電腦同時(shí)安裝了其它編譯工具,你需要謹(jǐn)慎,當(dāng)然是否有問(wèn)題我也不知道,你自己研究吧,把最后的結(jié)果貼出來(lái)大家分享。
1.相關(guān)網(wǎng)址
2. 準(zhǔn)備
您可以上boost官方網(wǎng)站(參看1.相關(guān)網(wǎng)址),下載這兩個(gè)文件(既然是免費(fèi),還是官方的好):
boost 1.36.0 的源代碼壓縮文件,推薦下載 7zip 版本:boost_1_36_0.7z”。
boost 編譯工具,請(qǐng)選擇windows下的可執(zhí)行文件:boostjam3.1.161ntx86.zip
下載后,得到源代碼壓縮文件,如果是7zip格式的“boost_1_36_0.7z”,約25M,解壓后,將迅速變?yōu)?75M,但這僅僅是源代碼及文檔的大小,在編譯過(guò)程中,所需的空間更是驚人,請(qǐng)您保證解壓縮后文件所在的磁盤驅(qū)動(dòng)器,至少有2個(gè)G的可用空間(有人說(shuō)需要更大的空間,不過(guò)我用了不到1.9G)。
boost 的編譯工具,可以根據(jù)需要,將編譯之后庫(kù)文件,及不需要編譯的頭文件,統(tǒng)一復(fù)制到指定的目錄,這樣有利于我們得到一個(gè)“干凈”的boost編譯結(jié)果目錄,本文將采用此方法。
下面,我們假設(shè)boost_1_36_0.7z被解壓到“X:\tmp\boost_1_36_0”目錄下,其中“X:”表示您選用的磁盤驅(qū)動(dòng)器盤符, “tmp”是我們事先創(chuàng)建的文件夾,而 “boost_1_36_0”則在解壓以后得到。我們把“X:\tmp\ boost_1_36_0”稱為“boost安裝源路徑”。
接下來(lái),假設(shè)我們希望它boost安裝到“E:\ boost_1_36_0”目錄下,請(qǐng)事先創(chuàng)建好這個(gè)文件夾,我們把這個(gè)路徑,稱為“boost安裝目標(biāo)路徑”。
請(qǐng)解壓“boostjam3.1.161ntx86.zip”文件,得到bjam.exe,將它復(fù)制到boost安裝源路徑,即“X:\tmp\boost_1_36_0”之下。
3. 編譯
步驟1:打開(kāi)“開(kāi)始”菜單,選擇“運(yùn)行”,輸入cmd,進(jìn)入控制臺(tái)窗口,然后在其內(nèi)通過(guò)cd命令,切換到boost安裝源路徑下。本例中為:
“X:\tmp\boost_1_36_0”,則過(guò)程如下:
X: (回車)
cd tmp\boost_1_36_0 (回車)
步驟2:繼續(xù)上步,請(qǐng)?jiān)诳刂婆_(tái)內(nèi)輸入:
bjam showlibraries (回車)
步驟3:正確情況下,將看到以下輸出內(nèi)容:
The following libraries require building:
date_time
filesystem
function_types
graph
iostreams
math
mpi
program
_options
python
regex
serialization
signals
system
test
thread
wave
步驟4:這里列出的是所有需要編譯的boost模塊,但我們將放棄對(duì)以下模塊的編譯: wave、mpi、 python、math、graph。這些模塊的具體含義,大家如有需要,請(qǐng)自行查明。
步驟5:繼續(xù)上步,在控制臺(tái)內(nèi)輸入:
bjam install toolset=borland prefix="E:\boost_1_36_0" debug withoutwave withoutmpi withoutpython withoutmath withoutgraph (回車)
步驟6:請(qǐng)?zhí)貏e注意,要更換為您自己的“boost安裝目標(biāo)路徑”。其它部分作如下說(shuō)明:
步驟7: 是兩個(gè)連續(xù)的減號(hào),=前后均不能夾帶空格,除路徑之外,參數(shù)都是小寫(xiě)字母。
步驟8:toolset 表示采用borland編譯。因此,要正確編譯boost,請(qǐng)您一定事先已安裝C++Builer2007。
步驟9:debug表示我們首先編譯“調(diào)試版”。現(xiàn)在很多人在安裝boost后,使用時(shí)總是提示缺少某個(gè)帶“d”的lib文件,實(shí)際就是缺少這一步,它是C++Builder2007在debug時(shí)所需要的。
步驟10:多個(gè) without 指定了所要放棄編譯的模塊。你也可以根據(jù)你的需要,在此增加或去掉某個(gè)模塊。
步驟11:回車后,控制臺(tái)內(nèi)將出現(xiàn)大量看似奇奇怪怪地文字,最后能看到以下內(nèi)容,就表示成功完成本步:
...failed updating 2 targets.
...skipped 31 targets...
...updated 341 targets...
這個(gè)需要比較長(zhǎng)的時(shí)間,你可以休息一下,做點(diǎn)其它事,時(shí)間多長(zhǎng)取決于你的計(jì)算機(jī)。我花了15分鐘左右。4. release版本
在控制臺(tái)內(nèi)輸入:
bjam install toolset=borland prefix="E:\boost_1_36_0" release withoutwave withoutmpi withoutpython withoutmath withoutgraph (回車)
改變的是“debug”更換為“release”?;剀嚭箝_(kāi)始發(fā)行版的boost庫(kù)編譯。現(xiàn)在網(wǎng)上提供的方法大多都是這一步編譯出的lib文件,即文件名不帶“d”的lib文件,如果你需要將你的項(xiàng)目release就需要這一步。
花費(fèi)的時(shí)間和debug差不多。
5. 更加完美
如果你要完全發(fā)布你的項(xiàng)目,那你需要這一步,否則你會(huì)得到缺少某個(gè)文件名中帶有“s”的lib文件的提示。
如果您的硬盤還有很大的空閑,您可以完整地編譯boost。如果你只是研究boost,你不需要這一步。
boost完全編譯需要比較長(zhǎng)的等待,而且在空間需要的也比較多。我用了一個(gè)小時(shí)左右,時(shí)間長(zhǎng)短取決于你的系統(tǒng)。
完整編譯boost的命令行:
bjam install toolset=borland prefix="您的\boost\安裝\目標(biāo)路徑" buildtype=complete
6. 說(shuō)明
檢查“boost安裝目標(biāo)路徑”,應(yīng)該可以看到兩個(gè)子目錄位于其內(nèi):“include”及“l(fā)ib”,前者保存著所有采用純頭文件形式提供的boost代碼文件;后者則保留著上一步的編譯結(jié)果,這些庫(kù)文件首先可以區(qū)分為以下三種形式:
“動(dòng)態(tài)鏈接庫(kù)”,擴(kuò)展名以.dll結(jié)束
“導(dǎo)入庫(kù)”,擴(kuò)展名以.lib結(jié)束,且文件名以版本號(hào)1_36結(jié)束
“靜態(tài)鏈接庫(kù)”,以擴(kuò)展名.lib結(jié)束。
然后三種形式再次區(qū)分為“發(fā)行版”和“調(diào)試版”,后者的文件名比前者多出一個(gè)“d”修飾。另外我們還可以看到所有庫(kù)文件名中都帶有“mt”字樣,這是表示這些庫(kù)都支持“多線程/Multithreads”。
請(qǐng)保存“boost_1_36_0.7z”及“boostjam3.1.161ntx86.zip”兩個(gè)文件,然后,建議您將 “boost安裝源路徑”下的doc文件夾——這是boost的說(shuō)明文檔——復(fù)制到“boost安裝目標(biāo)路徑”下,然后,您可以放心地刪除“boost安裝源路徑”。
7. 結(jié)束
打開(kāi)C++Builder2007.
7.1. Project-Default Options-C++Builder設(shè)置。在Include Path添加前面的“include\boost1_36”所在的目錄,在Library Path添加“l(fā)ib”所在的目錄。
7.2. Tools-Options設(shè)置。
C++Options-Paths and Directories.在此如上步設(shè)置。
終于結(jié)束了,非常感謝那些在網(wǎng)上無(wú)償發(fā)布技術(shù)的大佬們,是你們讓這個(gè)世界變得更加五彩繽紛。在此也鄙視一下微軟的黑屏計(jì)劃,支持一下番茄花園,雖然這是微不足道的。
測(cè)試一下你的安裝。
#include
#pragma hdrstop
#include "Unit1.h"
//#include
#include
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
boost::regex reg("(I.*)");
bool b=boost::regex_match( "I love ydlchina.", reg);
if(b==true)
ShowMessage("天哪,你成功了!");
}
在debug下運(yùn)行試試,再在release試試。(記得還要在Project Manager或Configuration Manager選release,只有這樣測(cè)試才完全)