Linux平台Boost的編譯方法

來源:互聯網
上載者:User
本部落格(http://blog.csdn.net/livelylittlefish )貼出作 者(三二一@小魚)相關研究、學習內容所做的筆記,歡迎廣大朋友指正!

Linux平台Boost的編譯方法

 

Boost的編譯使用的不是已經成為公認標準的make,而是專門為Boost開發的工具bjam(boost jam)。

本文以boost1.40為例,在Linux平台的編程環境為gcc4.4.1,假設Boost代碼在/usr/src/boost_1_40_0目錄,步驟如下。

 

1. 獲得bjam

 

獲得bjam有3種方式,如下:

方法1:Boost網站上提供了各種平台上先行編譯好的bjam可執行程式,可直接下載使用。

方法2:從Boost原始碼中提供的bjam代碼編譯出可執行程式。

方法3:通過bootstrap程式產生bjam。

 

方法1:

# apt-get install bjam

 

方法2:

(1) # cd /usr/src/boost_1_40_0/tools/jam/src

(2) # ./build.sh

 

編譯完成後:

    產生的可執行檔為

    # /usr/src/boost_1_40_0/tools/jam/src/bin.linuxx86/bjam

    需要將bjam.exe拷貝到原始碼所在的目錄
    # cp bin.linuxx86/bjam  /usr/src/boost_1_40_0

 

方法3:

(1) # cd /usr/src/boost_1_40_0

(2) # ./bootstrap.sh

該方法直接在Boost原始碼目錄下產生bjam檔案。

 

2. 修改bjam配置

 

使用bjam前,需要修改bjam的設定檔。Linux平台的設定檔:

/usr/src/boost_1_40_0/tools/build/v2/user-config.jam

 

修改如下。註:筆者在實驗時,不修改貌似也很正常。

 

將43行的“# using gcc ;”前的注釋符號‘#’去掉,表明用到使用gcc編譯。

如果要使用STLport作為其標準庫,將75行前的‘#’去掉。

 

3. 完整編譯Boost

 

對Boost進行完整編譯,產生所有調試版、發行版的靜態庫和動態庫。

 

方法1:

# cd /usr/src

# wget http://sourceforge.net/projects/boost/files/boost/1.40.0/boost_1_40_0.tar.bz2

# tar --bzip2 -xvf boost_1_40_0.tar.bz2

# cd boost_1_40_0

 

# bjam --toolset=gcc --build-type=complete stage

# ./bjam --build-type=complete --layout=versioned

# ./bjam

 

方法2:

# cd /usr/src/boost_1_40_0/tools/jam

# ./build_dist.sh

也會完成Linux平台bjam和Boost的所有編譯工作,並產生所有調試版、發行版的靜態庫和動態庫。但不推薦該方式。

 

編譯成功後,將在/usr/src/boost_1_40_0/bin.v2目錄下產生諸多檔案,包括.a和.so.1.40.0檔案,這就是在Linux平台要使用Boost需要的,其他的檔案可以刪除。

 

安裝

# ./bjam install

將產生的庫預設安裝到/urs/local/lib目錄。

 

4 部分編譯Boost

 

完整編譯Boost費時費力,且這些庫在開發過程中並不一定全部用到,因此,bjam也支援使用者自行選擇要編譯的庫。

 

在完全編譯的基礎上,使用--with或者—without選擇可以開啟或者關閉某個庫的編譯,例如,僅僅編譯date_time庫:

# cd /usr/src/boost_1_40_0

# ./bjam --toolset=msvc --with-date_time --build-type=complete stage

 

當然,bjam還有很多其他選項,如指定安裝路徑,指定debug或release等,可參考bjam文檔或協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.