linux平台上編譯安裝boost庫

出處:http://blog.sina.com.cn/s/blog_48d5933f0100o8np.html

linux平台上編譯安裝boost庫
1.首先解壓縮
      tar -zxvf boost_1_45_0.tar.gz 
2.然後進入解壓縮後的文件夾編譯boost的編譯器jam
3.執行編譯出bjam
     ./bootstrap.sh
4.編譯完後在這個目錄下有編譯出的bjam文件
     bjam
5.1.45已經將該文件放到了boost的根目錄下,不用下述的拷貝了
     然後在這個目錄下運行命令編譯:
6.進行編譯
      ./bjam release install
      系統默認會將include拷貝到/usr/local/include/boost/中
                將lib拷貝到/usr/local/lib下
7.    關於bjam的後面的參數的設置:
      -sTOOLS=gcc 指定編譯器為GCC
      –includedir=/usr/include/
8.    指定頭文件的安裝目錄,我安裝在/usr/include下。如果安裝成功,將在/usr/include/生成目錄boost,該目錄下就是boost的頭文件目錄
      –libdir=/usr/lib/boost 指定boost的庫文件的存放位置, 生成的 .a .so 文件將放在該目錄下
      install
      編譯並安裝boost3.注意事項安裝完成後,為了每次使用時不用輸入太多的目錄,可以在/etc/profile中加入:BOOST_INCLUDE=/usr/include/boostBOOST_LIB=/usr/lib/boostexport
      BOOST_INCLUDE BOOST_LIB以後在編譯程序時,只需要用:-I$BOOST_INCLUDE -L$BOOST_LIB
      即可,還要使用-l指定了鏈接庫。也許會出現編譯時或者運行時找不到動態庫(*.so)的錯誤把/usr/lib/boost追加到動態鏈接庫配置文件/etc/ld.so.conf中,然後直接運行ldconfig,即可!{僅測試成功一次的方式:

我這裡這樣編譯可以通過
g++ testBoost.cpp -o testBoostexe -lboost_thread
如果不行,可以將上述
的include 和lib拷貝到/usr/include/
 lib拷百到/usr/lib中
1、下載解壓
一般下載tar tar.bz2 tar.gz zip相對linux解壓比較方便,而win則是zip rar tar tar.gz tar.bz2。
linux默認沒有rar命令,沒有7z命令,win默認沒有7z命令,winrar一般裝機都有的。
推薦tar.gz tar.bz2 tar zip都可以。
Win平台直接用winrar打開解壓即可。
Linux平台tar.gz包使用tar -zxvf,tar tar.bz2使用tar -xjvf,zip包使用unzip -d 目錄 xxx.zip
網絡帶寬小可以考慮下載7z的源碼包,因為他壓縮率高,下載時間短。7z包:boost_1_45_0.7z
Win平台需要安裝7z,裝完7z之後winrar也會支持7z包
Linux平台需要安裝7z命令行版本,解壓命令:
#7z x boost_1_45_0.7z
x 表示以原文件名為解壓路徑
使用7z x boost_1_45_0.7z > /dev/null丟棄顯示信息,這樣更快些,缺點是出錯看不到信息。
2、先編譯bjam(Win平台確保是管理員賬戶,Linux平台確保是root賬戶)
Win平台運行bootstrap.bat
Linux平台運行bootstrap.sh,如無權限先
# chmod 755 ./bootstrap.sh
# chmod 755 ./libs/gil/doc/build.sh
# chmod 755 ./tools/build/v2/engine/src/build.sh
# ./bootstrap.sh
3、編譯boost
WIN平台
bjam –toolset=gcc –build-type=complete “–prefix=c:boost_gcc4.5.0” install
表示編譯所有庫:編譯出若干lib和dll。
其中lib(靜態庫)包括單線程release、多線程release、單線程debug、多線程debug四種版本。
其中dll(動態庫)只包括多線程release、和多線程debug兩種,可能因為單線程版動態庫實際應用極少。
默認是安裝的VC編譯器,使用–toolset=msvc-9.0(gcc)來制定編譯器
默認編譯到c:boost,包括include和lib
Linux平台
貌似不支持./bjam –build-type=complete,我們用:
./bjam release install 編譯release庫並安裝
./bjam debug install 編譯debug庫並安裝
頭文件默認是/usr/local/include
庫文件默認是/usr/local/lib
./bjam -sTOOLS=gcc –includedir=目錄 –libdir=目錄 install
4、
Win平台在IDE的配置中加入頭文件和庫文件路徑
Linux平台
vi ~/.bash_profile
最後加入
export boost=’
-lboost_date_time
-lboost_filesystem
-lboost_graph
-lboost_iostreams
-lboost_math_c99
-lboost_math_c99f
-lboost_math_c99l
-lboost_math_tr1
-lboost_math_tr1f
-lboost_math_tr1l
-lboost_prg_exec_monitor
-lboost_program_options
-lboost_python
-lboost_regex
-lboost_serialization
-lboost_signals
-lboost_system
-lboost_unit_test_framework
-lboost_wave
-lboost_wserialization’
以後編譯就可以使用g++ xxx.cpp $boost即可。
未經允許不得轉載:GoMCU » linux平台上編譯安裝boost庫