http://blog.csdn.net/ymsdu2004/article/details/6321259
一、 從Source編譯安裝STLPort:
1、 下載下傳源代碼:官網http://www.stlport.org/,最新穩定版為5.2.1。
2、 解壓源檔案到本地硬碟,我解壓到C槽,解壓後的STLPort目錄為C:/STLport5.2.1

3、 編譯工具我選擇VS2008,運作“Visual Studio 2008 Command Prompt”。
4、 執行指令 cd C:/STLport5.2.1進入STLPort的根目錄“C:/STLport5.2.1”。
5、 執行指令configure msvc9配置編譯環境。
6、 執行指令cd C:/STLport5.2.1/build/lib。
7、 執行指令nmake -f msvc.mak clean install
一切OK…需要執行的步驟全部結束,隻需再耐心等待幾分鐘的編譯時間!編譯完成後在STLPort主目錄C:/STLport5.2.1下面比之前多出了bin和lib兩個檔案夾,所有編譯産生的*.dll和*.lib檔案都已經自動複制到了這兩個檔案夾下面,同時C:/STLport5.2.1/build/lib目錄下産生的obj檔案夾則可以删除,以免占有同不必要的硬碟空間(多達318M)。
二、 從Source編譯安裝Boost
boost有些庫是不用編譯安裝的,僅需包含頭檔案庫就行了。但有些庫(如thread,regex)則因為需要根據不同的系統做不同的調整,是以必須編譯後方能使用,是以可以根據自己具體需要用什麼庫來單獨進行某個庫的編譯。為了省事,我選擇将那些需要編譯的庫全部編譯,以下就是編譯安裝的具體步驟:
1、 下載下傳源代碼:官網http://www.boost.org/最新穩定版為1.46.1。
2、 解壓源檔案到本地硬碟,我解壓到C槽,解壓後的Boost目錄為C:/boost1.46.1
3、 編譯工具我選擇VS2008,運作“Visual Studio 2008 Command Prompt”。
4、 編譯bjam工具:
l 執行指令cd C:/boost1.46.1進入Boost主目錄。
l 執行指令bootstrap.bat運作批處理檔案,生成了bjam.exe工具
5、 修改Boost配置檔案:
l 進入檔案夾“C:/boost.1.46.1/tools/build/v2”用記事本打開檔案“user-config.jam”。
l 找到檔案中的“MSVC configuration”, 将# using msvc : 8.0 ;修改為using msvc : 9.0 ;(注意修改的内容:去掉#,同時根據自己的編譯器修改參數8.0,我的編譯器是9.0,故改為9.0)。
l 找到檔案中的“STLPort configuration”,将“# using stlport : : /usr/include/stlport /usr/lib ;”修改為“using stlport : 5.2.1 : "C:/STLport5.2.1/src" : "C:/STLport5.2.1/lib" ;”
6、 執行指令bjam --toolset=msvc --build-type=complete stdlib=stlport stage。通過bjam.exe工具編譯Boost。
歐拉!當你看到下面的螢幕顯示時,基本沒有問題了,該幹嘛幹嘛去,要耐得住性子,編譯時間是相當的可觀(我的機器下編譯花了半個多小時…)。編譯完成後,得到的庫檔案都預設便宜到檔案夾bin.v2中,這是預設的,在通過bjam編譯的時候可一更改該選項。
三、 使用Boost之前對VS2008環境的配置
1、 配置VC9的目錄選項:打開Tools->Options,進入“Projects and Solutions”的“VC++Directories”頁,在“Show directories for”下面選擇“Include files”,在其中加入C:/boost1.46.1和C:/STLport5.2.1,并調整到最前面。選擇“Liabrary files”,在其中加入C:/STLport5.2.1/lib和C:/boost_1_46_1/bin.v2/libs(注意,上文提到過很多庫不需要編譯就可以使用,這個庫的包含是針對那些用到需要編譯的庫如regex的人而言的)。
2、 針對具體工程時,要設定必要的工程屬性:
打開菜單Project->…Properties,在“C/C++”的“Preprocessor”頁的“Preprocessor definition”中添加宏_STLP_DEBUG和__STL_DEBUG
所有的準備工作已經完成,現在就可以完全進入Boost的世界了!
四、 使用舉例
[cpp] view plain copy
- // main.cpp
- // Boost+STLport Test
- // Yangming
- // 2011.04.12-...
- #include "boost/timer.hpp"
- #include <iostream>
- using namespace boost;
- using namespace std;
- int main()
- {
- timer t; //構造一個計時器對象
- cout<<"max timespan:"<<t.elapsed_max()/3600<<"h"<<endl; //定時器最大計時
- cout<<"min timespan:"<<t.elapsed_min()<<"s"<<endl; //定時器最小計時(分辨率)
- cout<<"now time elapsed:"<<t.elapsed()<<"s"<<endl; //從計時器對象建構至今過了多長時間
- return 0;
- }
運作結果:
========================================================================================================
修改:2013/09/01重新編譯,boost版本變為boost_1_54_0,STLport版本任然不變,發現按照執行指令bjam –-toolset=msvc –-build-type=complete stdlib=stlport stage指令編譯會出很多錯誤,通過很長時間的摸索,發現修改為執行指令b2 –-toolset=msvc –-build-type=complete stage就OK了, boost編譯真心讓人不省心啊!
另外,編譯速度極度緩慢,我用了大概一個小時以上,完成後發現整個檔案夾有10多個G,編譯完成後,将會生成bin.v2目錄和stage目錄。bin.v2是編譯生成檔案的中間目錄,stage是最終生成的dll和lib相應的目錄,如果你硬碟不夠大的話建議删除bin.v2,不過下次你再編譯的時候還得等上和第一次一樣長的時間。
五、 參考資料:
1、《Boost程式庫完全開發指南-深入C++準标準庫》--羅建峰。
2、Boost官方文檔: http://www.boost.org/doc/libs/1_46_1/more/getting_started/windows.html。
3、玄冬的部落格: http://blog.chinaunix.net/space.php?uid=24352482&do=blog&id=77047。