在Visual Studio .NET 2003 命令提示下進(jìn)入boost目錄,如何進(jìn)入tools\build\jam_src\,執(zhí)行build.bat,編譯成功得到bjam.exe
接著copy bjam.exe到 boost目錄,執(zhí)行bjam -sBOOST_ROOT=. -sTOOLS=vc7 "-sBUILD=debug release <runtime-link>static/dynamic"
漫長(zhǎng)的等待后會(huì)在boost目錄下的bin文件夾中生產(chǎn)一堆lib,復(fù)制到sdk的lib路徑下,將boost目錄添加的工程中。ok
在主頁(yè)點(diǎn)擊download進(jìn)入sourceforge頁(yè)面下載,當(dāng)前最新版本為boost_1_33_1,有多種文件格式可供下載(包括.exe, .tar.gz等),內(nèi)容相同,都是boost_1_33_1的全部源代碼。下載后解壓(假設(shè)解壓目錄為D:\boost\boost_1_33_1)。
boost中的大部分內(nèi)容都可以直接源代碼使用,而thread則需要首先編譯出對(duì)應(yīng)的庫(kù)。
Windows XP平臺(tái):
我的機(jī)器上安裝了vc2003和vc2005,分別在D:\devenv\vs2003和D:\devenv\vs2005目錄下
1. 編譯jam(JAM是編譯其他庫(kù)的基礎(chǔ))
啟動(dòng)命令行進(jìn)入D:\boost\boost_1_33_1\tools\build\jam_src目錄
運(yùn)行build即可
運(yùn)行結(jié)束后,將新出現(xiàn)bin.ntx86目錄,我們所需要的bjam.exe就在該目錄下。
查看一下build文件的內(nèi)容,發(fā)現(xiàn)其自動(dòng)檢測(cè)vc2003(vc7.1)的安裝目錄,然后調(diào)用vc7.1編譯出的bjam.exe。(使用了VS71COMNTOOLS宏)
2. 編譯thread庫(kù)
啟動(dòng)命令行進(jìn)入D:\boost\boost_1_33_1目錄
set VC71_ROOT=D:\devenv\vs2003\Vc7 (此時(shí)沒(méi)有自動(dòng)檢測(cè),所以需要人工指定)
tools\build\jam_src\bin.ntx86\bjam.exe --with-thread stage (只編譯thread庫(kù))
編譯完成后,結(jié)果在D:\boost\boost_1_33_1\bin\boost\libs\thread\build目錄下(包括debug/relase, dll/lib等);另外,由于我們?cè)诰幾g時(shí)使用了stage選項(xiàng),所以所有的結(jié)果都將被拷貝到D:\boost\boost_1_33_1\stage\lib目錄下。
總結(jié)一下,
動(dòng)態(tài)庫(kù)
libboost_thread-vc71-mt-gd-1_33_1.lib + boost_thread-vc71-mt-gd-1_33_1.dll (debug) 42.4k + 88.0k
libboost_thread-vc71-mt-1_33_1.lib + boost_thread-vc71-mt-1_33_1.dll (release) 42.0k + 44.0k
靜態(tài)庫(kù)
libboost_thread-vc71-mt-gd-1_33_1.lib (debug) 2.61M
libboost_thread-vc71-mt-1_33_1.lib (release) 782k
靜態(tài)庫(kù)(runtime-link-static)
libboost_thread-vc71-mt-sgd-1_33_1.lib (debug) 2.19M
libboost_thread-vc71-mt-s-1_33_1.lib (release) 692k
s Static link to runtime.
g Debug runtime.
d Debug enabled code.
3. 準(zhǔn)備使用thread庫(kù)
選用編譯得到的thread動(dòng)態(tài)庫(kù)。
將boost_thread-vc71-mt-gd-1_33_1.lib重命名為libboost_thread-vc71-mt-gd-1_33_1.lib(前面加了lib)
將boost_thread-vc71-mt-1_33_1.lib重命名為libboost_thread-vc71-mt-1_33_1.lib(前面加了lib)
將這兩個(gè)文件拷貝到D:\devenv\vs2003\Vc7\PlatformSDK\Lib
將boost_thread-vc71-mt-gd-1_33_1.dll拷貝到windows的system32目錄下
將boost_thread-vc71-mt-1_33_1.dll拷貝到windows的system32目錄下
以上將thread的debug/release版本的共享庫(kù)拷貝到系統(tǒng)目錄下,接下去就可以使用了。
4. 使用thread庫(kù)
在vc2003中創(chuàng)建一個(gè)空的Win32 Console Project,代碼:
#include <boost/thread/thread.hpp>
#include <iostream>
void hello()
{
std::cout << "Hello world, I'm a thread!" << std::endl;
}
main()
{
boost::thread thrd(&hello);
thrd.join();
}
設(shè)置Project屬性的Code Geneartion------Runtime Library 為 /MDd 或者 /MD
設(shè)置Project屬性的General-------Additional Include Directories為 D:\boost\boost_1_33_1
編譯運(yùn)行即可。
posted on 2008-10-27 16:53
小王 閱讀(646)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
Boost