1. 程式人生 > >Ubuntu下如何安裝boost?

Ubuntu下如何安裝boost?

最近有開始折騰Linux了,沒辦法,太多的東西都是在Linux下很高效並且不提供VS的工程檔案,所以還是學學Linux吧,免得以後被人說做伺服器竟然不懂Linux。

這篇文章的前提是系統是Ubuntu12.04LTS,系統完全更新過,並且一系列編譯工具都已經安裝過了,如果你還不清楚如何安裝開發工具,那請你搜索一下相關文章,搞明白後再來看這個,謝謝。

首先我們需要的最新版本的boost庫的原始碼包,可以通過www.boost.org來下載,現在的最新版本是1.52.0,有興趣的朋友可以看下這個版本的changelog。

解壓(解壓這個問題很多人都會用命令解壓,不過我覺得既然右鍵可以直接解壓,為何要用命令呢,你要是覺得命令列比較高階或者專業,那請你自己去查詢

)後放在 檔案系統/usr/share目錄下,資料夾名為boost_1_52_0,裡面有什麼大家就自己去看吧。

1.使用bootstrap.bat來編譯生成b2和bjam可執行檔案。因為預設的boostrap.bat中的工具是msvc,而ubuntu不可能使用msvc的,所以我們修改boostrap.bat檔案如下:

::修改前
call .\build.bat %* > ..\..\..\..\bootstrap.log

::修改後
call .\build.bat %* gcc > ..\..\..\..\bootstrap.log
::修改前
set toolset=msvc

::修改後
set toolset=gcc

這樣我們就設定它是使用gcc編譯。

2.點選bootstrap.sh會在終端編譯生成b2和bjam可執行檔案.

3.開始編譯boost庫。從終端進入boost庫的目錄 cd /usr/share/boost_1_52_0/ ,然後輸入sudo ./bjam tolset=gcc –layout=tagged –build-type=complete stage

注意:此處使用的是完全編譯,因為省得以後還得編譯麻煩,如果你不需要某些庫,直接寫–without-XXX(庫名)。此處為了保證許可權沒有問題,所以使用了sudo命令,如果你的當前使用者是roo許可權t,則不需要加sudo

這樣生成的.a庫檔案就會在boost_1_52_0資料夾下的stage/lib目錄下了。編譯時間比較長,大家耐心等待。

4.關聯標頭檔案目錄和庫檔案目錄分別到/usr/include和/usr/lib。

#關聯標頭檔案
sudo ln /s /usr/share/boost_1_52_0/boost /usr/include/boost

#關聯lib檔案,需切換到boost_1_52_0/stage目錄下,執行如下命令
#注意:linux下的lib檔案是以lib開頭 .a字尾結束的檔案
sudo ind $PWD/lib/*.* -type f -exec ln -s {} /usr/lib/ \;

這樣整個編譯過程就結束了,剩下就是你自己如何使用了。

如果你不想全部安裝,或者只是想要.a的庫檔案,那我推薦如下的安裝程式碼。

./b2 toolset=gcc cxxflags=-fPIC --layout=versioned link=static variant=debug,release threading=multi runtime-link=shared --without-python --without-mpi --without-wave --without-graph --without-math --without-serialization stage

這個編譯生成的是.so檔案,而且沒有那些暫時不需要的庫檔案,比較精簡,我個人是沒有試過–build-type=mininal的方式。