1. 程式人生 > >linux安裝boost庫

linux安裝boost庫

Boost庫是一個經過千錘百煉、可移植、提供原始碼的C++庫,,作為標準庫的後備,是C++標準化程序的發動機之一。Boost庫分為兩個部分來使用,一是直接使用對應的標頭檔案,二是需要編譯安裝相應的庫才可以使用。具體來說,boost 庫檔案有兩種型別,一種是無需編譯的庫檔案(Header-Only Libraries),我們可以直接使用它們來寫C++程式,只要保證gcc能找到這些庫檔案的標頭檔案。一種是需要單獨編譯的庫檔案(Separately-Compiled Libraries),這些庫檔案只有原始檔我們還不能用來寫C++程式,必須把它們編譯成二進位制檔案並安裝到系統中才能用。這是因為這些庫依賴於操作的某些功能實現,如執行緒、檔案系統、訊號等(可見這些庫在不同的作業系統上有不同的實現,只是向程式設計師提供了一致的介面)。編寫C++程式若要使用這些單獨編譯的庫,在編譯程式時還要指定其二進位制檔案(.so檔案)的位置,這樣gcc才能載入這些二進位制檔案,並生成我們的程式。

在linux安裝過程如下:

  1. 進入自己的工作目錄執行解壓操作:

    • ~$ bzip2 -d boost_1_6_0.tar.bz2
    • ~$ tar -xvf boost_1_6_0.tar
    • ~$ cd boost_1_6_0
    • ~/boost_1_6_0$ ./bootstrap.sh //生成安裝工具bjam和b2
  2. 在這裡使用b2工具安裝,可以使用./b2 –help 檢視命令選項

  3. 安裝boost庫:
    ~/boost_1_6_0$ sudo ./b2 install

安裝過程大概需要半個小時,安裝完畢後boost庫的標頭檔案預設是在/usr/local/include目錄下,.a和.so在/usr/local/lib目錄下。

注:在執行程式碼時,ldd會提示找不到.so檔案。也就是動態庫的環境變數沒有設定。這裡解決方法是將需要使用的庫sudo cp至/usr/lib。可能還需要設定動態庫的環境變數LD_LIBRARY_PATH,設定方法有兩種:
1. export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/lib 但是登出後就失效
2. 修改~/.bashrc或~/.bash_profile或系統級別的/etc/profile
- 在其中新增例如export PATH=$PATH:$LD_LIBRARY_PATH
- source .bashrc (Source命令也稱為“點命令”,也就是一個點符號(.)。source命令通常用於重新執行剛修改的初始化檔案,使之立即生效,而不必登出並重新登入)

參考資料