如何在WINDOWS下編譯BOOST C++庫 .
睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接
如何在WINDOWS下編譯BOOST C++庫
cheungmine
2008-6-25
寫出來,怕自己以后忘記了,也為初學者參考。使用VC8.0和boost1.35.0。
1)下載boost
http://www.boost.org/users/download/
這是它的下載頁面,需要下載2個東西:
Packaged Releases
VERSION 1.35.0
和
Boost Jam 3.1.16
你需要在每個條目下面找到Details | Download字樣,點擊Download,進入下載頁。可是遺憾的是sourceforge站點被封了,所以通常你是無法下載的。(我詛咒封這個站點的人)。因此有必要使用某些特殊的工具來穿透這個封鎖。我下載的是這個:
boost_1_35_0.tar.gz
和
boost-jam-3.1.16.zip
2)下載Python2.5.2
http://www.python.org/download/
在這個頁面點擊Python2.5.2 Windows Installer
得到一個Python2.5.2.msi后,即可點擊安裝。我安裝在C:/OpenSource/Python25
創建一個批處理文件:pt.bat,內容如下:
set path=C:/OpenSource/Python25
Python
然后啟用命令行工具(運行cmd.exe),進入pt.bat所在目錄,鍵入pt.bat
如果你看到>>>的提示符號,說明python安裝成功。
3)編譯boost-jam
解壓boost_1_35_0.tar.gz,到目錄boost_1_35_0。我的是在C:/OpenSource/ boost_1_35_0。這樣你在C:/OpenSource/ boost_1_35_0/下就能發現boost-build.jam這個文件。
解壓boost-jam-3.1.16.zip,然后在目錄下雙擊build.bat,即進行編譯。編譯結束,可以發現生成了bin.ntx86/bjam.exe。
我們要的就是這個bjam.exe,把它復制到boost_1_35_0目錄下,在這個目錄下有boost-build.jam文件。
4)完全編譯boost_1_35_0
編譯全部庫。雖然你可以只編譯一部分,但是還是全部編譯,省的以后麻煩。為此你需要編寫一個批處理文件,我命名它為boost.bat:
SET MSVC_ROOT="F:/Microsoft Visual Studio 8/VC"
SET VISUALC="F:/Microsoft Visual Studio 8/VC"
SET JAM_TOOLSET=VISUALC
SET PYTHON_ROOT=C:/OpenSource/Python25
SET PYTHON_VERSION=2.5.2
SET PATH=C:/OpenSource/boost_1_35_0
你要保證你的路徑是正確設置的。然后把這個文件保存到C:/OpenSource下面。(其實位置不重要)。然后啟用命令行工具(cmd)。類似地輸入下面的命令(<Enter>表示回車):
C:/OpenSource>boost.bat<Enter>
C:/OpenSource>cd boost_1_35_0<Enter>
C:/OpenSource/boost_1_35_0>bjam -sBOOST_ROOT=. -sTOOLS=msvc<Enter>
然后你就等待吧。一大堆的警告是不要管的。估計等1小時不到的時間,就完全編譯好了。你可以發現在C盤出現了:
C:/Boost
它下面有Include和Lib目錄。你可以使用這個C:/Boost,使用它的靜態或動態庫。也可以使用C:/OpenSource/boost_1_35_0下的源代碼。
5)結束也是開始BOOST之旅
好了,開始你的boost之旅吧。我用它的graph庫實現了最短路徑,整個上海的路網,4萬多條路段,任意2點查詢最短路徑,不超過3秒就OK。內存消耗在30M左右。從此我喜歡上了boost。
最新的BOOST提供了C++和Python的接口,這也是我要用它的理由。一個簡單的比喻,C++好比COM,Python好比JavaScript,如果你認為JavaScript調用COM可以產生強大的威力,是原子彈的話,那么Python調用C++則是氫彈。關于Boost.Python的知識,參考:
http://www.cppblog.com/jinq0123/archive/2008/05/29/BuildingHybridSystemswithBoostPython_c.html
當然,我還是覺得上述過程太復雜,在Windows上使用Boost,你可以完全忽略上面的過程,到下面這個鏈接里直接取得一個下載軟件,它會給你下載你要的包:
http://www.boostpro.com/products/freeRFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成