使用MinGW的非标准位置构建Boost 1.52

时间:2012-12-19 16:24:49

标签: c++ boost batch-file mingw boost-bjam

我尝试使用MinGW(x64)从64bit的源代码构建Boost,但在创建bjam.exe时失败了。任何指向帮助的指标都表示赞赏感谢。

  • 包:Boost 1.52.0(从sourceforge下载,C:\ BoostSrc)
  • 包装:MinGW-w64(4.7.2-x64 rubenvb,C:\ MinGW \ rubenvb-4.7.2-64)

我创建了以下批处理文件以确保可重复构建,但出了点问题。我无法使用提供的批处理文件构建bjam.exe。我没有使用提供的“bootstrap.bat”作为MinGW的非标准安装路径(我有多个mingw集),我的机器上没有安装MSVC

SET BOOST_VER=boost_1_52_0
SET PATH_MINGW=C:\MinGW\rubenvb-4.7.2-64
SET PATH_BJAM=%~dp0\%BOOST_VER%\tools\build\v2\engine
SET PATH="%PATH_MINGW%\bin"
PUSHD "%PATH_BJAM%"

REM check path
mingw32-make -version

REM error below
build.bat mingw --toolset-root=%PATH_MINGW% --show-locate-target

SET PATH=%OPATH%
POPD
REM ... some more ...

错误消息

gcc:错误:CreateProcess:没有这样的文件或目录

当我直接从命令提示符输入命令(设置路径,转到位置并调用build.bat)时,它会顺利进行(我认为可以忽略警告)

2 个答案:

答案 0 :(得分:3)

这可能会解决您的问题,但即使不是,也无论如何都要改变它。

使用除PATH以外的其他变量名称,因为这是MINGW可能依赖的内置且重要的Windows环境变量。

答案 1 :(得分:0)

在深入到位于BOOST_ROOT \ tools \ build \ v2 \ engine的build.bat之后,当提供“mingw”作为工具集时,脚本绕过“猜测工具集”步骤并且无法定义变量“BOOST_JAM_TOOLSET_ROOT” ,留下与gcc相关的可执行文件的调用失败。

现在我按照以下方式更改了批次

PUSHD "%PATH_BJAM%"
SET "PATH=%PATH_MINGW%\bin"

REM add the line below
SET "BOOST_JAM_TOOLSET_ROOT=%PATH_MINGW%\"

build.bat mingw --show-locate-target
SET PATH=%OPATH%

我从外部批处理文件手动设置BOOST_JAM_TOOLSET_ROOT变量,这很好。请注意结尾的“\”字符,因为build.bat里面的路径变量是这样的:

set "PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%"

非常感谢您的任何意见和建议。