Windows下編譯boost程序庫(kù) |
發(fā)布時(shí)間: 2012/9/11 19:50:59 |
Boost庫(kù)是一個(gè)功能強(qiáng)大、構(gòu)造精巧、跨平臺(tái)、開源并且完全免費(fèi)的C++程序庫(kù) 要使用Boost庫(kù),首先確認(rèn)一下你使用的開發(fā)環(huán)境是否支持編譯boost庫(kù)(http://www.boost.org/users/history/version_1_46_1.html) 以windows的msvc編譯器為例,支持編譯boost庫(kù)是Visual C++: 7.1, 8.0, 9.0 10.0 如果你還在用VC++ 6.0的話,只能抱歉了。VC6編譯器由于不支持模板偏特化等許多新特性,所以有的Boost庫(kù)會(huì)缺少功能甚至不能使用。 安裝Boost庫(kù)的方法: 1、從Boost網(wǎng)站(www.boost.org)下載壓縮包,解壓到本地硬盤任意位置。 本文以boost_1_46_1版本為例,解壓位置為 D:\boost_1_16_1\ 2、進(jìn)入目錄D:\boost_1_16_1\,運(yùn)行bootstrap.bat,獲得bjam.exe 程序 3、命令行方式執(zhí)行: bjam stage --toolset=msvc-7.1 --build-type=complete --layout=versioned 其中, stage 選項(xiàng)指定boost使用本地構(gòu)建,當(dāng)前目錄下會(huì)創(chuàng)建一個(gè)stage目錄,編譯后的lib庫(kù)會(huì)在其中。 toolset 選項(xiàng)指定編譯器,對(duì)于使用visual studio 開發(fā)工具的程序員來(lái)說(shuō),需要正確填寫msvc的版本號(hào): vs2003 : msvc-7.1 vs2005 : msvc-8.0 vs2008 : msvc-9.0 vs2010 : msvc-10.0 build-type 選項(xiàng)指定編譯類型, layout 選項(xiàng)指定需要編譯的庫(kù)名及頭文件的地址目錄名的生成策略。默認(rèn)Windows下為versioned 接下來(lái)你可以關(guān)上顯示屏去做別的事了,因?yàn)锽oost庫(kù)的完整編譯會(huì)耗費(fèi)大量的時(shí)間(本人在pc上花了約1個(gè)小時(shí)時(shí)間)。 完整編譯后,需要在visual studio IDE 中設(shè)置包含目錄和庫(kù)目錄。 Windows Visual Studio 200x IDE 通用配置 ======================================= 在菜單中選擇: 1. Tools (工具) 2. Options (選項(xiàng)) 3. Project and Solutions (項(xiàng)目) 4. VC++ Directories (VC++ 目錄) 5. Show directories for (顯示以下內(nèi)容的目錄): Include Files (包含文件) 增加 D:\boost_1_46_1 6. Show directories for (顯示以下內(nèi)容的目錄): Library Files (庫(kù)文件) 增加 D:\boost_1_46_1\stage\lib 如果是Visual Studio 2010,不再是從tools->options->project and solutions->VC++ directories 中配置庫(kù)目錄和包含目錄,而是對(duì)自己的項(xiàng)目單獨(dú)配置。 先添加/導(dǎo)入自己的項(xiàng)目,在窗體左側(cè)項(xiàng)目的屬性管理器中 1.單擊第一個(gè)按鈕(屬性),彈出項(xiàng)目屬性頁(yè) 2.選擇配置屬性->VC++目錄 3.包含目錄中增加 D:\boost_1_46_1 4.庫(kù)目錄中增加 D:\boost_1_46_1\stage\lib OK,一切準(zhǔn)備就緒。可以開始使用Boost庫(kù)了。下面的一個(gè)小程序可以測(cè)試一下boost庫(kù)是否安裝正確。 #include <boost/thread/thread.hpp> #include <iostream> void hello() { std::cout 《 "Hello world, I'm a thread!" 《 std::endl; } int main(int argc, char* argv[]) { boost::thread thrd(&hello); thrd.join(); return 0; } 正確安裝的話,會(huì)在控制臺(tái)輸出一行"Hello world, I'm a thread!"的信息。 完整編譯Boost庫(kù)費(fèi)時(shí)費(fèi)力,而且也不一定在開發(fā)中都用到,所以也可以自行選擇要編譯的庫(kù)。 只要在運(yùn)行bjam的命令中,添加--with-<庫(kù)名> 選項(xiàng)就可以了,或--without 億恩科技地址(ADD):鄭州市黃河路129號(hào)天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888 聯(lián)系:億恩小凡 QQ:89317007 電話:0371-63322206 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |