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

 

 

你可能感兴趣的:(bootstrap,Build,MinGW,boost,bjam)