最近由於編譯一個程序用到了C++的boost庫,所以便安裝了這個庫。但是,其中遇到了一些小問題。所以記錄下來,以供別人參考。
首先說一下我的環境:Ubuntu 12.04 32bit, gcc 4.6.3
其實在ubuntu下,可以用一下命令直接安裝
但是,我這樣安裝以後,編譯程序時出現了很多錯誤,而且都是系統文件的錯誤。我開始以爲是我的boost庫版本不對,後來換了好幾個版本,都出現了 同樣的問題。後來,自己編譯了一個boost.1.42。然後程序就順利通過了。後來想了一下原因,可能是因爲從上面的命令默認安裝的boost在編譯打 包時沒有開啓mpi這個功能。而我的程序需要這個功能。以下說一下安裝的簡要步驟(我編譯了boost1.42和boost1.50,兩者安裝方法相同, 以後者爲例): 先下載安裝一下依賴文件:
1.下載boost1.53源文件http://sourceforge.net/projects/boost/files/latest/download?source=dlp
2.解壓後,進入boost_1_53_0目錄,執行:
3.(重點)修改 tools/build/v2/user-config.jam文件,在最後面加上一行“using mpi ;”(注意mpi後面有個空格,然後一個分號 )
4. 執行:
(或者:
./bjam -a -sHAVE_ICU=1 #-a參數,代表重新編譯,-sHAVE_ICU=1代表支持Unicode/ICU
)
5. 執行:
以上便是全部安裝過程,因爲網上提到的比較多,所以此處從略。重點想提的是第三步,務必記得。不過,如果你的程序不需要mpi這個功能,那也就不重要了。 應用默認設置即可。而且,第四步,執行時可以在後面家prefix參數,如果不加,裝好後,默認的頭文件在/usr/local/include /boost目錄下。庫文件在/usr/local/lib/目錄下。默認不用修改。
如果編譯好程序後,在運行時提示無法加載某個庫文件,則把/usr/local/lib下的所有boost的庫文件mv到/usr/lib目錄下就可以了。
默認安裝頭文件在目錄/usr/local/include,而庫文件在目錄/usr/local/lib。卸載也很簡單,直接將以上兩個目錄中有關boost的內容刪除就可以了。
更多詳情可參考boost官方網站:http://www.boost.org/