【问题标题】:Boost installation failed: The system cannot find the path specifiedBoost安装失败:系统找不到指定的路径
【发布时间】:2016-05-27 15:26:25
【问题描述】:

我无法安装最新版本的Boost,即1.61。我所做的是在Windows 7提示命令中从boost根文件夹运行“bootstrap.bat”,但错误消息显示:

Building Boost.Build engine 系统找不到指定的路径。

未能构建 Boost.Build 引擎。请查阅 bootstrap.log 了解 进一步诊断。

任何帮助表示赞赏!

【问题讨论】:

  • “请查阅 bootstrap.log 以获得进一步的诊断。” ——你做到了吗?日志说什么?
  • 它说“错误:无法确定 VS 安装的位置。” VS12 安装在“C:\Program Files (x86)\Microsoft Visual Studio 12.0”
  • 您实际上是在“Visual Studio”命令提示符下运行它,还是适当地配置了环境(例如,通过运行call "%VS120COMNTOOLS%..\..\VC\vcvarsall.bat" x86 之类的东西)?
  • 在这里查看我的答案:stackoverflow.com/questions/35217511/… 它适用于VS2015boost 1.60,但该方法也适用于VS2012boost 1.61
  • @DanMašek 是的,我从 VS 命令提示符“VS2013 的开发人员命令提示符”运行它。我从那里调用“C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC>vcvarsall.bat”。错误消息说“系统找不到指定的路径。错误:无法确定VS安装的位置。”

标签: c++ windows boost


【解决方案1】:

如果您从 git 获得了提升,请确保您已签出任何相关的子模块。就我而言,缺少的是工具/构建,我通过以下方式获得:

git submodule update --init -- "tools/build"

如果您不确定自己需要什么,也可以直接加载所有内容

git submodule update --init --recursive

【讨论】:

    【解决方案2】:

    我相信这不是 Boost C++ 库或 Boost.Build 的问题,而是 VS 安装的问题。错误来自vcvars64.bat:

    @call "%VS120COMNTOOLS%VCVarsQueryRegistry.bat" No32bit 64bit  
    @if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR
    ...
    :error_no_VSINSTALLDIR
    @echo ERROR: Cannot determine the location of the VS installation.
    

    VCVarsQueryRegistry.bat 脚本的作用类似于

    @for /F "tokens=1,2*" %%i in ('reg query   "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "12.0"') DO (
        @if "%%i"=="12.0" (
            @SET "VSINSTALLDIR=%%k"
        )
    )
    

    您的注册表在HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7 下都有什么?无论如何,此时这听起来像是 VS 安装不完整。

    【讨论】:

    • 这可能是缺少系统环境变量吗?
    • 这不太可能,我看到的脚本专门查看注册表 - 然后然后设置环境变量。
    • @VladimirPrus 谢谢。我检查了我的寄存器,发现 HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7 下名为 12.0 的密钥错误地指定了 VS12 的地址,即指向 C:\Program Files\Microsoft Visual Studio 12.0\ 而不是 C:\程序文件 (x86)\Microsoft Visual Studio 12.0\。但是我没有找到 HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7。在此之后,我从 Boost 根目录运行 bootstrap.bat 并收到错误消息“系统找不到指定的路径。'.\build.bat' 不是内部或外部命令、可运行程序或批处理文件。”任何想法?谢谢
    • 您使用的是本地 Windows 命令行还是 MinSys?如果您使用的是本机 Windows 命令行,则听起来您没有 tools\build\src\engine 目录,或者它是空的。如果您使用 git,则需要获取子模块。如果您使用的是 MinSYS,则需要使用 bootstrap.sh。
    • @VladimirPrus 我按照另一篇文章的建议从 boost 构建目录运行 bootstrap.bat。在我看来,它创建了一个 b2 应用程序,因此在下一步中我运行了“b2 toolset=msvc-12.0 --build-type=complete --abbreviate-paths architecture=x86 address-model=64 install -j4”。它开始复制文件,整个过程在几分钟后结束,最后的消息是“......更新了 327 个目标......”。 boost文件夹的大小不到600m。我认为 Boost 没有成功构建。但我不知道接下来我能做什么。
    猜你喜欢
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2018-12-12
    相关资源
    最近更新 更多