mingw編譯boost中bjam的toolset問題

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庫了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章