boost版本1.49.0
編譯boost的第一步是使用bootstrap.bat編譯出bjam,但是在電腦沒有裝VC的情況下這一步就會卡死(bjam的編譯是很快的,出現半天沒反應的情況必定是出錯了,不要浪費時間等了),關掉卡死的窗口,進入目錄:boost_1_49_0\tools\build\v2\engine(也有可能在engine\src目錄下),執行build.bat,會一直提示找不到toolset的錯誤(這就是卡死的原因了,還很佔CPU)。
問題找到了,解決方法網上都只提到把mingw\bin目錄加入path變量,然後使用bootstrap mingw,但我試了多次,包括使用--toolset-root指定mingw的目錄、修改toolset爲gcc、嘗試加入環境變量MINGW和MINGW_HOME等等,全部都不行,實在沒辦法我就打開build.bat搜索mingw,然後找到如下一段內容:
if EXIST "C:\MinGW\bin\gcc.exe" ( set "BOOST_JAM_TOOLSET=mingw" set "BOOST_JAM_TOOLSET_ROOT=C:\MinGW\" goto :eof)
原來build.bat會自動查找猜測toolset,使用第一個查找到的toolset,當全都未查到時自然就提示找不到了,把查找mingw的內容改成符合自己的mingw所在路徑,我的修改如下粗體所示:
if EXIST "D:\tools\MinGW-4.6.1\bin\gcc.exe" ( set "BOOST_JAM_TOOLSET=mingw" set "BOOST_JAM_TOOLSET_ROOT=D:\tools\MinGW-4.6.1\" goto :eof)
然後回到engine(或engine\src)目錄,執行build.bat即可編譯成功,把生成的engine\bin.x86\bjam.exe拷貝到boost的解壓目錄(如:boost_1_49_0)即可開始編譯boost庫了。