(一). 在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