【问题标题】:boost 1.66.0 msvc-14.1 error提升 1.66.0 msvc-14.1 错误
【发布时间】:2018-01-05 20:36:38
【问题描述】:

我正在尝试在我的 Windows 机器上编译 boost 1.66.0。我已经安装了 Visual Studio 2017(社区)作为我的 IDE,并且 14.1 编译器肯定可以工作。但是,如果我尝试在任何 VC2017 本机命令提示符中调用它

.\bootstrap
.\b2 variant=debug,release link=shared,static threading=single,multi address-model=64 toolset=msvc-14.1

我收到很多以下错误:

'cl' 不是内部或外部命令,可操作 程序或批处理文件

如果我将工具集更改为 msvc-14.0,一切正常。我还成功地用 msvc-14.1 编译了 boost 1.65.1。但是,从那时起,Visual Studio 已经进行了许多更新。

编辑:我尝试使用最新的编译器版本 (19.12.25834) 再次编译 boost 1.65.1,现在我遇到了同样的问题。在“x64 Native Tools Command Prompt for VS 2017”中手动调用“cl”可以正常工作。

【问题讨论】:

    标签: visual-c++ boost visual-studio-2017


    【解决方案1】:

    我的解决方案是:

    • 删除“C:\Users\'用户名'\AppData\Local\Temp\b2_msvc_14.1_vcvars32_.cmd”
    • 再次构建

    我的原因假设:Boost 制作了一个临时的“cmd”文件,该文件可能来自不支持“msvc-14.1”的旧版本。该文件未重建/删除。

    背景: 我在两台开发机器中的一台上遇到了同样的问题,它们都非常相似(Windows 7)并用 VC2017.3 更新。工作人员抱怨“未知版本”(_MSC_VER=1911),但完成了建筑。失败的有“无法识别 cl”错误。在查看故障点时,它明确表示它正在调用“C:\Users\'username'\AppData\Local\Temp\b2_msvc_14.1_vcvars32_.cmd”。

    我对两台机器进行了比较,发现失败的机器不包括设置 __VSCMD_PREINIT_VCToolsVersion=14.12.25827。可能还有其他差异,但这是肯定的。

    我以为我丢失了一些软件包或环境设置,但奇怪的是在执行“b2.exe --toolset=msvc-14.1 --clean-all”时文件没有被删除。

    我的解决方案是删除临时 cmd 文件 - 允许重新构建它。

    手动删除“c:\Users\'username'\AppData\Local\Temp\b2_msvc_14.1_vcvars32_.cmd”后,构建工作正常(除了1.65.1抱怨版本_MSC_VER=1911)。

    【讨论】:

    • 这是非常有用的信息,非常感谢。
    猜你喜欢
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    相关资源
    最近更新 更多