最近由於編譯一個程序用到了C++的boost庫,所以便安裝了這個庫。但是,其中遇到了一些小問題。所以記錄下來,以供別人參考。
首先說一下我的環境:Ubuntu 12.04 32bit, gcc 4.6.3
其實在ubuntu下,可以用一下命令直接安裝
sudo apt-get install libboost-dev
但是,我這樣安裝以後,編譯程序時出現了很多錯誤,而且都是系統文件的錯誤。我開始以為是我的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目錄,執行:./bootstrap.sh
3.(重點)修改 tools/build/v2/user-config.jam文件,在最後面加上一行“using mpi ;”(注意mpi後面有個空格, 然後一個分號 )
4. 執行: ./b2
5. 執行:sudo ./b2 install
以上便是全部安裝過程,因為網上提到的比較多,所以此處從略。重點想提的是第三步,務必記得。不過,如果你的程序不需要mpi這個功能,那也就不重要了。應用默認設置即可。而且,第四步,執行時可以在後面家prefix參數,如果不加,裝好後,默認的頭文件在/usr/local/include/boost目錄下。庫文件在/usr/local/lib/目錄下。默認不用修改。
如果編譯好程序後,在運行時提示無法加載某個庫文件,則把/usr/local/lib下的所有boost的庫文件mv到/usr/lib目錄下就可以了。