Boost,一個功能強大、跨平台、開源而且免費的C++程序庫,可以在其官網了解更多:http://www.boost.org,C++標准經過不斷的升級完善,現在已經功能越來越吸引人了,Boost開發過程中也吸引了很多C++11新特性,從而更兼容C++的標准庫了,這樣,有什么理由不用它呢?雖然很多東西我們可以自己寫,但是,借助功能穩定的庫,可以提高生產力,節約程序員的時間,何樂不為?當然,並非讓我們只是調用函數,傳參數,完成任務就行了,如果不去了解下背后原理,那只能稱之為碼農,而不是程序員了。
由於開發環境基於Mac,那就基於它來搭建一個開發平台,來體驗boost庫的設計美妙和功能強大吧~:
1. 首先,需要下載boost的源碼包,可以從官網下載,也可以這里下載:boost_1_60_0.tar.bz2
2. 解壓,目錄結構如下:
boos子目錄下就是其源碼了,它們按照功能划分,很清晰。
3. 編譯。編譯器至少應支持C++98標准,這里使用gcc編譯器,如下:
4. 安裝:
執行解壓目錄下文件進行配置:"./bootstrap.sh"
執行"sudo ./b2 --buildtype=complete install"進行boost所有庫的安裝,在mac下安裝后頭文件路徑為:/usr/local/include/boost,庫路徑為/usr/local/lib
5. 構建工具安裝
構建工具可以使用make、cmake等,這里使用boost自帶的b2,它使用jamroot來配置、管理代碼,然后每個模塊子目錄下都有jamfile。
cd tools/build
./booststrap.sh
sudo ./b2 install
6. 測試代碼:
7. 編譯運行:
目錄結構如下:
jamroot和jamfile文件內容分別如下:
jamroot說明了整個目錄結構的編譯規則,jamfile說明了文件的執行輸出,如exe,unit-test等,現在需要測試main.cpp,進入te目錄下執行b2命令即可,輸出,執行后目錄結構如下:
可以看到,在jamfile聲明了unit-test,在執行b2命令時也進行了單元測試,這里默認生成debug版本的輸出文件,如果要發布,執行"b2 release"即可。這里看到輸出boost版本為106000,現在可以使用boost來進行開發了。
(也可以執行"g++ -o main.out main.cpp",注意,在ubuntu下需要加上-Istdc++,即:g++ -o main.out main.cpp -Istdc++)