生成VS2010的BOOST庫
生成VS2010的BOOST庫
系統:Windows 8.1
IDE:Visual studio 2010
BOOST:1.65.1
1. 進入編譯環境
點選Visual Studio Command Prompt(2010)進入對應的控制檯文字環境,這個環境已經載入了編譯所需的環境變數;在環境變數正確的情況下,也可以使用CMD控制檯。
進入..(BOOST原始碼庫存放位置)\boost_1_65_1\
2. 開始生成編譯工具
執行bootstrap.bat;//windows 系統下需要執行這個批處理檔案
在這個階段出錯,開啟bootstrap.log檔案檢視錯誤資訊,
發現strings.c中出現報錯,
出現類似錯誤的原因是型別未定義,這個原因是.c檔案中,所有變數的宣告必須在第一行可執行語句之前進行,將strings.c檔案中的變數宣告位置進行更改即可。
重新執行bootstrap.bat。遇到上面的問題以同樣的方式進行處理。
在這步中遇到的第二個問題是:LNK2001: unresolved external symbol _va_copy...
出項這個問題的原因是,把linux下的程式一直到VC上時,C版本不支援va_copy,因為va_copy是C99中的。
根據bootstrap.log的顯示,錯誤發生在連線
#ifndef va_copy
#ifdef __va_copy
#define va_copy(DEST,SRC) __va_copy((DEST),(SRC))
#else
#define va_copy(DEST,SRC) memcpy((&DEST),(&SRC),sizeof(va_list))
#endif
#endif
編譯成功後,會提示 Bootstrapping is done. To build, run: .\b2,實際上可以使用
3. 新增第三方庫
有些庫比如zlib是沒有預設包含到boost庫中的,需要先下載原始碼,然後編譯到boost庫中。
以zlib、bzip2為例,下載原始碼包,解壓到本機,例如:
Zlib: c:\zlib-1.2.11
Bzip2: c:\bzip2-1.0.6
輸入命令設定環境變數:
set BZIP2_SOURCE=”c:\bzip2-1.0.6”
set ZLIB_SOURCE=”c:\zlib-1.2.11”
4. 開始編譯
在設定環境變數之後,輸入.\bjam 開始預設編譯。
編譯結束之後,會顯示include路徑和library路徑。
例如:
Include paths: c:\boost_1_65_1
Library paths: c:\boost_1_65_1\stage\lib