1. 程式人生 > >如何在Visual Studio 2003, Visual Studio 2005編譯boost 1.34.1?

如何在Visual Studio 2003, Visual Studio 2005編譯boost 1.34.1?

4:下載bzip2-1.0.4    zlib-1.2.3,   icu4c-3.6:

5:下載python2.5 , 安裝到c:/

6:寫一個批處理檔案,內容是:

SET BZIP2_SOURCE="D:/bzip2-1.0.4" SET ZLIB_SOURCE="D:/zlib-1.2.3" SET ICU_PATH="D:/icu4c-3.6" bjam --toolset=msvc-8.0--stagedir=./lib_x86 --builddir=./ address-model=32 link=static runtime-link=static threading=multi stage debug release
bjam 
--toolset=msvc-8.0--stagedir=./lib_x64 --builddir=./ address-model=64 link=static runtime-link=static threading=multi stage debug release

SET BZIP2_SOURCE="D:/bzip2-1.0.4" SET ZLIB_SOURCE="D:/zlib-1.2.3" SET ICU_PATH="D:/icu4c-3.6" bjam --toolset=msvc-8.0--stagedir=./lib_x86 --builddir=./ address-model
=32 link=shared runtime-link=shared threading=multi stage debug release bjam --toolset=msvc-8.0--stagedir=./lib_x64 --builddir=./ address-model=64 link=shared runtime-link=shared threading=multi stage debug release

7.將批處理檔案放到C:/boost_1_34_1,  執行批處理檔案

使用:

編譯了幾次終於成功了,簡單記下過程,以免以後又忘了^_^ 在Visual Studio .NET 2003 命令提示下進入boost目錄,如何進入tools/build/jam_src/,執行build.bat,編譯成功得到bjam.exe 接著copy bjam.exe到 boost目錄,執行bjam -sBOOST_ROOT=. -sTOOLS=vc7 "-sBUILD=debug release <runtime-link>static/dynamic" 漫長的等待後會在boost目錄下的bin資料夾中生產一堆lib,複製到sdk的lib路徑下,將boost目錄新增的工程中。ok 上面是偶的經歷,如果你不能編譯成功,請參考下面的文章 原文出自:

http://unknown-error.spaces.live.com/blog/cns!9B12A9BDE11A3428!142.entry#comment

如何開始使用boost的跨平臺thread庫(Windows)

在主頁點選download進入sourceforge頁面下載,當前最新版本為boost_1_33_1,有多種檔案格式可供下載(包括.exe, .tar.gz等),內容相同,都是boost_1_33_1的全部原始碼。下載後解壓(假設解壓目錄為D:/boost/boost_1_33_1)。 boost中的大部分內容都可以直接原始碼使用,而thread則需要首先編譯出對應的庫。 Windows XP平臺:       我的機器上安裝了vc2003和vc2005,分別在D:/devenv/vs2003和D:/devenv/vs2005目錄下 1. 編譯jam(JAM是編譯其他庫的基礎) 啟動命令列進入D:/boost/boost_1_33_1/tools/build/jam_src目錄 執行build即可 執行結束後,將新出現bin.ntx86目錄,我們所需要的bjam.exe就在該目錄下。 檢視一下build檔案的內容,發現其自動檢測vc2003(vc7.1)的安裝目錄,然後呼叫vc7.1編譯出的bjam.exe。(使用了VS71COMNTOOLS巨集) 2. 編譯thread庫 啟動命令列進入D:/boost/boost_1_33_1目錄 set VC71_ROOT=D:/devenv/vs2003/Vc7  (此時沒有自動檢測,所以需要人工指定) tools/build/jam_src/bin.ntx86/bjam.exe --with-thread stage (只編譯thread庫) 編譯完成後,結果在D:/boost/boost_1_33_1/bin/boost/libs/thread/build目錄下(包括 debug/relase, dll/lib等);另外,由於我們在編譯時使用了stage選項,所以所有的結果都將被拷貝到D:/boost/boost_1_33_1/stage /lib目錄下。 總結一下, 動態庫 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 靜態庫 libboost_thread-vc71-mt-gd-1_33_1.lib  (debug)    2.61M libboost_thread-vc71-mt-1_33_1.lib     (release)  782k 靜態庫(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. 準備使用thread庫     選用編譯得到的thread動態庫。     將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)     將這兩個檔案拷貝到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版本的共享庫拷貝到系統目錄下,接下去就可以使用了。 4. 使用thread庫     在vc2003中建立一個空的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(); }     設定Project屬性的Code Geneartion------Runtime Library 為 /MDd 或者 /MD     設定Project屬性的General-------Additional Include Directories為 D:/boost/boost_1_33_1     編譯執行即可。