linux下安裝boost


(一). 在Terminal中分別執行以下3步安裝boost:

1. 下載后進入壓縮包所在目錄解壓: sudo tar -zxvf boost_1_52_0.tar.gz

2. 進入./boost_1_52_0,運行: sudo ./bootstrap.sh --prefix=/usr

  /usr 可替換為任意路徑  (事前運行./bootstrap.sh --help 看下參數說明)

3. sudo ./b2 install

整個安裝用時比Windows下安裝短很多。將在目標安裝文件夾下的/lib、/include下產生庫文件。

 

(二). 編譯C++項目文件時,要Link上對應所需的庫,不然會產生諸如:

undefined reference to `boost::system::generic_category()'
undefined reference to `boost::thread::start_thread()'

這樣的信息。方法是修改Makefile文件。

打開Makefile找到規則

  $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)

修改為:

  $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) -lboost_system -lboost_thread

注意Makefile的格式/tab與空格是有定義區別的,而如果用QTCreator打開Makefile,保存時會以數個空格替換掉/tab,這將導致后續make不能執行,所以需要用比如Vim這樣的編輯器打開修改。

 

(三). 編譯成功后運行執行檔,如果出現

error while loading shared libraries: libboost_system.so.1.52.0: cannot open shared object file: No such file or directory

是因為系統在當前注冊的搜索路徑{PATH}中找不到所需的共享庫。PATH是Enviroment Variable:

echo "$HOME"

echo "$PATH"

輸出環境變量的值;

修改或設置則可以用export指令:

export PATH=${PATH}:/usr/local/lib:/usr/local/include


免責聲明!

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



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