Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 編譯安裝 Boost C++ 庫:啟用 MPI 支援、自訂安裝路徑與常見錯誤排解

編輯:關於 Linux

Boost 是 C++ 準標準庫,Ubuntu 套件 libboost-dev 版本較舊且預設未啟用 MPI。專案若需 MPI、特定版本或最新特性,建議從源碼編譯。本文以 Boost 1.53 為例,詳述編譯安裝全流程與關鍵避坑點。

Boost 編譯安裝示意圖

環境與版本

  • OS:Ubuntu 12.04 32-bit
  • GCC:4.6.3
  • Boost:1.53.0 (SourceForge 下載)

編譯安裝步驟

  1. 下載並解壓
wget https://sourceforge.net/projects/boost/files/boost/1.53.0/boost_1_53_0.tar.gz
tar xzf boost_1_53_0.tar.gz
cd boost_1_53_0
  1. 執行 bootstrap 生成 b2 建構工具
./bootstrap.sh
  1. 關鍵步驟:修改 user-config.jam 啟用 MPI
# 編輯 tools/build/v2/user-config.jam
# 在檔案末尾新增:
using mpi ;
⚠ 注意: mpi 後必須有空格再接分號 using mpi ;,否則 b2 解析失敗。此步驟決定編譯出的庫是否包含 boost::mpi 模組。
  1. 編譯 (可加 -jN 並行加速)
./b2 -j4
  1. 安裝 (預設 /usr/local)
sudo ./b2 install
# 或指定前綴
sudo ./b2 install --prefix=/opt/boost-1.53

安裝後驗證

# 預設路徑
ls /usr/local/include/boost/   # 標頭檔
ls /usr/local/lib/libboost_*   # 庫檔案

# 測試 MPI 程式編譯
mpic++ test_mpi.cpp -I/usr/local/include -L/usr/local/lib -lboost_mpi -lboost_serialization -o test_mpi

常見問題與解決

問題原因解決
執行時找不到 libboost_xxx.so動態連結器搜尋路徑無 /usr/local/libecho /usr/local/lib | sudo tee /etc/ld.so.conf.d/boost.conf && sudo ldconfig 或複製庫檔至 /usr/lib
編譯錯誤:mpi.hpp 找不到未在 user-config.jam 啟用 mpi確認 using mpi ; 正確,重新 ./b2
版本衝突:系統已有 libboost-devapt 安裝版本與手動編譯版本共存編譯時指定 --prefix 隔離,或移除系統套件
b2 編譯極慢單執行緒預設加 -j$(nproc) 並行編譯

進階配置選項

# 僅編譯特定庫 (加快速度)
./b2 --with-thread --with-filesystem --with-system --with-mpi

# 靜態連結
./b2 link=static

# 釋出版本 (優化、無除錯符號)
./b2 variant=release

# 完整範例
./b2 -j4 variant=release link=static threading=multi --with-mpi --with-thread --with-filesystem

套件管理器替代方案

若不需 MPI 或特定版本,Ubuntu 20.04+ 可直接:

sudo apt-get install libboost-all-dev libboost-mpi-dev libboost-mpi-python-dev

但版本受限於發行版凍結,生產環境建議仍以源碼編譯掌控版本與功能模組。

掌握 Boost 編譯安裝流程,特別是 user-config.jam 的 MPI 啟用技巧,能確保 C++ 專案獲得所需的高效能、跨平台庫支援。

Copyright © Windows教程網 All Rights Reserved