在Ubuntu上安裝boost庫[轉]


在編譯kenlm的時候需要安裝boost,去官網下載boost安裝包,然后按照以下步驟安裝。

boost官網

-----------------以下內容,網上轉載------------------------------

boost中,用到了別的函數庫,所以為了使用boost中相應的功能,需要先安裝系統中可能缺失的庫

  • apt-get install mpi-default-dev   #安裝mpi庫
  • apt-get install libicu-dev      #支持正則表達式的UNICODE字符集
  • apt-get install python-dev     #需要python的話
  • apt-get install libbz2-dev      #如果編譯出現錯誤:bzlib.h: No such file or directory

如果在安裝以上庫失敗的話可以嘗試一下用
sudo apt-get update

然后在進行安裝。
上述函數庫裝好之后,就可以編譯boost庫了。
解壓boost_1_49_0.tar.bz2,得到/boost_1_49_0,將當前工作目錄切換到此文件夾下。
打開解壓后的文件夾,里面有個bootstrap.sh的腳本文件,運行這個腳本
./bootstrap.sh

生成bjam,上述命令可以帶有各種選項,具體可參考幫助文檔: ./bootstrap.sh --help。其中--prefix參數,可以指定安裝路徑,如果不帶--prefix參數的話(推薦),默認路徑是 /usr/local/include/usr/local/lib,分別存放頭文件和各種庫。執行完成后,會生成bjam,已經存在的腳本將會被自動備份。
(注意,boost 1.49會在當前目錄下,生成兩個文件bjamb2,這兩個是一樣的)
編譯完成后,進行安裝,也就是將頭文件和生成的庫,放到指定的路徑(--prefix)下

注意,必須用管理員權限,否則無法寫入到/usr/local/*目錄下,sudo ./b2 install

安裝結束后可以進行測試一下
建立一個test.cpp文件

touch test.cpp

vim test.cpp

#!c

#include<iostream>
#include<boost/bind.hpp>
using namespace std;
using namespace boost;
int fun(int x,int y){return x+y;}
int main(){
	int m=1;int n=2;
	cout<<boost::bind(fun,_1,_2)(m,n)<<endl;
	return 0;
}

編譯
g++ test.cpp -o test
執行:
./test
結果:
3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM