1

我尝试使用 MinGW (x64) 从源代码为 64 位构建 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)时,它运行顺利(带有我认为可以忽略的警告)

4

2 回答 2

3

这可能会解决您的问题,但即使不是这样,无论如何更改它也是一个好主意。

使用不同的变量名称,PATH因为这是 MINGW 可能依赖的内置且重要的 windows 环境变量。

于 2012-12-19T16:43:43.113 回答
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%"

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

于 2012-12-20T06:05:11.233 回答