在linux下編譯boost庫
編譯環(huán)境 操作系統(tǒng):SUSE linux Enterprise Server 10 64-bit 編譯工具:gcc 4.1.2 1.下載boost1.36 2.解壓boost到/usr/share 3.在命令行運行/usr/share/boost_1_36_0/tools/jam/src/build.sh生成bjam 4.復制/usr/share/boost_1_36_0/tools/jam/src/bin.linuxx86_64/bjam到/usr/bin目錄下 5.配置/usr/share/boost_1_36_0/tools/build/v2/user-config.jam中使用的編譯工具 using gcc ; 6.使用bjam --build-type=complete --with-XXXX stage 編譯指定庫或者使用 bjam --build-type=complete stage 完全編譯boost庫,庫文件編譯完成后存放在 /usr/share/boost_1_36_0/stage/lib目錄下.由于大部分boost庫并不需要編譯可直接使用, 通常我們可選擇性的編譯需要的庫. 7.如需要使用bjam編譯應用程序,編輯/etc/profile,在文件最后增加 export BOOST_ROOT = /usr/share/boost_1_36_0 export BOOST_INCLUDE = /usr/share/boost_1_36_0 export BOOST_LIB = /usr/share/boost_1_36_0/stage/lib 8.為了讓編譯工具能搜索到boost庫的頭文件和庫文件,我們使用ln命令建立連接 8.1創(chuàng)建頭文件連接 ln -s /usr/share/boost_1_36_0/boost /usr/include/boost 8.2創(chuàng)建庫文件連接,為了方便我們可使用jam幫助我們完整這項工作,在 /usr/share/boost_1_36_0/stage/lib下創(chuàng)建Jamroot #Jamroot腳本 local files = [ glob *.* ] ; local curpath ; local install_lib_files = [ glob /usr/lib/*.* ] ; local cmd ; local source_path ; local desc_path ; path-constant curpath : ./ ; for local file in $(files) { source_path = $(curpath)/$(file) ; desc_path = "/usr/lib/"$(file) ; cmd = "ln -s "$(source_path)" "$(desc_path) ; if $(desc_path) in $(install_lib_files) { ECHO $(desc_path)" is exists" ; } else { ECHO $(cmd) ; SHELL $(cmd) ; } } 以上腳本將/usr/share/boost_1_36_0/stage/lib目錄下的所有庫文件創(chuàng)建連接符號到 /usr/lib目錄下. 9.編譯完成 |