BOOST庫 的設置

1. window
                       boost1.35.0編譯日誌
    經歷了將近半年多的時間boost終於發佈了1.35.0版本(前版本1.34.1發佈於2007/7),
其編譯方法和原來的編譯方法基本上是一致的,主要改變包括1.34.0以來bjam的toolset所
提供的參數名稱的改變(具體參見《boost1.34.0編譯日誌》)外,還包括bjam的編譯默認
選項的變化,在1.35.0之前的版本默認編譯時會自動編譯各種版本的庫,包括靜態庫、
動態庫、debug庫和release庫等全部的版本,但是到了1.35.0時默認的選擇僅僅編譯release
版本的庫,這樣一來在開發的時候就不能進行必要的調試了,爲了能夠使其編譯全部的版本
需要在bjam的命令行參數中添加一個--build-type=complete類型的參數來指明需要編譯全
部的版本,所需要編譯同時爲了使得regex庫能夠通過ICU庫支持Unicode,在編譯上需要有
一些特殊的選擇。我在Visual Studio 2005 Pro + SP1環境下編譯了該庫,爲了避免走彎路
所以將其編譯的方法進行說明,以方便大家編譯。
    由於boost是採用其自己的bjam工具通過命令行進行編譯的,所以必須在Windows下開啓
console窗口,同時必須將Visual Studio中C++目錄下的環境vcvarsall.bat配置腳本運行一
遍,以設置好VC的編譯器環境變量。
    1. 編譯不帶ICU支持的boost庫
       此種情況下的boost庫編譯起來比較的簡單,在準備好的console窗口中輸入:
           bjam --without-python --toolset=msvc-8.0 --build-type=complete stage
       就可以了,如果要安裝的話則輸入:
           bjam --without-python --toolset=msvc-8.0 --build-type=complete install
          
    2. 編譯具有ICU支持的boost庫
       首先我們必須編譯ICU庫才能夠編譯boost庫,在準備好的console窗口中輸入:
           bjam -sICU_PATH=d:/ICU --without-python --toolset=msvc-8.0 --build-type=complete stage
       就可以了,如果要安裝的話則輸入:
           bjam -sICU_PATH=d:/ICU --without-python --toolset=msvc-8.0 --build-type=complete install
    通過上面的方法可以很正常完成boost各種需要版本的關係。
   
   
   
   編譯boost庫-用vc2005編譯boost1.34.1


   編譯boost庫-用vc2005編譯boost1.34.1 
//打開控制檯窗口,請使用vs2005在開始菜單中的“Visual Studio Tools->Visual Studio 2005 命令提示”打開控制檯,這樣vc的的編譯環境就設置好了。
//假設boost安裝包的解壓的目錄爲{BOOST_SRC}中。
//先編譯出bjam.exe,它被用於安裝boost庫
cd {BOOST_SRC}/tools/build/jam_src
build.bat
//利用編譯出的bjam.exe程序編譯並安裝boost庫
cd {BOOST_SRC}
copy {BOOST_SRC}/tools/build/jam_src/bin.ntx86/bjam.exe
//下面的命令的各選項的說明:
//prefix    將boost安裝到的路徑(生成的頭文件和庫文件都會放到該路徑中)。
//重定義以下變量(利用-s設置):
//VC80_ROOT  vc2005的安裝路徑,如果未將vc2005安裝到默認位置,你必須指定該項。
//TOOLS         使用的編譯工具,vc2005對應的是vc-8_0
//PYTHON_ROOT        python的安裝目錄,如果未將BOOST安裝到默認位置,你必須指定該項。
//BUILD         編譯結果選項,默認會生成儘可能多的版本,如調試版/發行版,靜態庫/動態庫,單線程/多線程。
bjam "-sVC80_ROOT=D:/Program Files/Microsoft Visual Studio 8/VC" "-sTOOLS=vc-8_0"  "-sPYTHON_ROOT=D:/Program Files/Python24" "--prefix=E:/librarys/boost" install

 

2. linux


boost_1_33_1.tar.tar
shell> ./configure
Linux不支持ICU
修改Makefile
BJAM_CONFIG= -sPYTHON_ROOT=/usr -sPYTHON_VERSION=2.4 --build-type=complete
shell> make

PREFIX=/usr/local
EPREFIX=/usr/local
LIBDIR=/usr/local/lib
INCLUDEDIR=/usr/local/include

用途: 經常用boost啊,主要是ANY和線程庫,還有SIGNAL
< <Beyond the C++ Standard Library: An Introduction to Boost>>. 漢語版的


BOOST : http://www.boost.org/doc/libs/1_39_0/doc/html/signals/s04.html

項目中同時使用Boost.signal 和 Qt signal
網上找到的解決方法,修改boost/signals/detail/signals_common.hpp文件,
將     BOOST_SIGNALS_NAMESPACE定義爲其他名稱,再編譯
boost signal庫, 項目中就可以同時使用兩個庫了

我們用的比較多的有
boost::thread (包括mutex,condition)
boost::pool
boost::algorithm
boost::functional
boost::spirit
另外lexical_cast,智能指針也很方便

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章