首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

Ubuntu 系統下 Boost C++ 庫的兩種安裝與配置全攻略

     編輯:C++ 入門

前言

Boost 是 C++ 準標準庫的重要補充,提供了智能指針、正則表達式、多線程、文件系統等眾多高質量組件。在 Ubuntu 12.04 等舊版本系統上配置 Boost 1.52.0,主要有兩條路徑:一鍵安裝預編譯包(快速便捷)與源碼編譯安裝(版本可控、優化深度)。本文詳細記錄兩種方法的完整步驟、驗證代碼與常見坑點。

一、環境基線

  • 作業系統:Ubuntu 12.04.1 Desktop i386
  • 目標版本:Boost 1.52.0
  • 測試代碼:使用 boost::lexical_cast 進行字符串轉整數

二、方法一:APT 一鍵安裝預編譯包(推薦新手/快速部署)

1. 搜尋可用包

apt-cache search boost

輸出列表中會出現 libboost-dev,這是開發包(含頭文件與靜態庫)。

2. 直接安裝

sudo apt-get install libboost-dev

優點:極快(秒級),自動處理依賴,系統級整合。
缺點:版本由倉庫決定,可能非最新;無法自定義編譯選項(如多線程、位置無關碼等)。

3. 驗證安裝

編寫測試程式 test.cpp:

#include <iostream>
#include <boost/lexical_cast.hpp>

int main() {
    int a = boost::lexical_cast<int>("123456");
    std::cout << a << std::endl;
    return 0;
}

編譯運行:

g++ test.cpp -o test
./test

輸出 123456 即代表安裝成功。

三、方法二:源碼編譯安裝(推薦生產環境/版本鎖定)

1. 下載源碼包

官網 Boost 1.52.0 提供 .tar.gz 與 .tar.bz2 兩種格式,下載 .tar.gz 並放置於 /usr/local/:

cd /usr/local/
wget https://boostorg.jfrog.io/artifactory/main/release/1.52.0/source/boost_1_52_0.tar.gz

2. 解壓縮

tar -zxvf boost_1_52_0.tar.gz
cd boost_1_52_0/

3. 引導構建系統

./bootstrap.sh

此腳本會檢測編譯器、Python 等依賴,生成 b2(舊版稱 bjam)構建工具與 project-config.jam 配置文件。

4. 編譯並安裝(核心步驟)

./b2 install

預設安裝至 /usr/local,包含所有庫的靜態/動態版本、單線程/多線程、Debug/Release 變體,耗時約 10-30 分鐘視機器性能而定。
常用加速/定製參數:

  • -j$(nproc):並行編譯,利用所有 CPU 核心。
  • --with-thread --with-filesystem --with-system:僅構建需要的庫,大幅縮短時間。
  • variant=release link=static threading=multi:僅構建發布版靜態多線程庫。
  • cxxflags="-fPIC":生成位置無關碼,便於製作共享庫。

示例:./b2 -j4 --with-thread --with-filesystem variant=release link=static threading=multi install

5. 環境變數配置(可選)

若安裝至非標準路徑,需設定:

export CPLUS_INCLUDE_PATH=/usr/local/boost_1_52_0:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/usr/local/boost_1_52_0/stage/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/boost_1_52_0/stage/lib:$LD_LIBRARY_PATH

或將庫路徑加入 /etc/ld.so.conf.d/boost.conf 並執行 ldconfig。

6. 驗證編譯安裝

使用同樣的 test.cpp,但需顯式指定頭文件與庫路徑(若未配置環境變數):

g++ test.cpp -o test -I/usr/local/boost_1_52_0 -L/usr/local/boost_1_52_0/stage/lib -lboost_system
./test

輸出 123456 表示源碼編譯安裝成功。

四、兩種方法對比與選型建議

維度APT 安裝 (libboost-dev)源碼編譯安裝
速度秒級10-30 分鐘
版本控制倉庫版本(通常較舊)完全可控,可鎖定特定版本
編譯優化通用預設選項可定製:指令集、靜態/動態、LTO 等
維護成本隨系統更新自動維護需手動升級/打補丁
適用場景學習、快速原型、CI 環境生產部署、嵌入式交叉編譯、性能敏感項目

五、常見問題排查

  • bootstrap.sh 失敗:檢查是否安裝 g++、python3、libicu-dev。
  • b2 編譯報錯 zlib:安裝 zlib1g-dev。
  • 多版本共存:源碼安裝至 /opt/boost/1.52.0,配合 update-alternatives 或 CMake find_package 切換。
  • 頭文件找不到:確認 -I 路徑指向含 boost/ 目錄的父目錄。

六、結語

Ubuntu 下部署 Boost 庫,APT 適合「開箱即用」,源碼編譯適合「精準控制」。掌握兩種方式並理解其背後的構建機制(Bootstrap → b2 → 階段式安裝),能讓您在不同專案階段靈活選擇。建議新專案優先嘗試現代 CMake FetchContent 或 Conan/vcpkg 等包管理器,進一步簡化依賴管理流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved