You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SCONS编译NSIS 3.09源码时VS2013版本匹配报错求助

解决NSIS 3.09源码编译VS2013版本不兼容问题

核心问题

NSIS 3.09的SConstruct文件中,MSVS_VERSION的枚举值仅支持到VS2010(10.0),而VS2013对应的版本号是12.0,不在允许列表内,导致报错。

具体解决步骤

  • 修改SConstruct的版本枚举
    找到源码中这段代码:

    opts.Add(EnumVariable('MSVS_VERSION', 'MS Visual C++ version', os.environ.get('MSVS_VERSION'), allowed_values=('6.0', '7.0', '7.1', '8.0', '8.0Exp', '9.0', '9.0Exp', '10.0', '10.0Exp')))
    

    将allowed_values末尾添加'12.0',修改后如下:

    opts.Add(EnumVariable('MSVS_VERSION', 'MS Visual C++ version', os.environ.get('MSVS_VERSION'), allowed_values=('6.0', '7.0', '7.1', '8.0', '8.0Exp', '9.0', '9.0Exp', '10.0', '10.0Exp', '12.0')))
    
  • 使用VS2013开发者命令提示符运行编译
    不要直接在普通CMD/PowerShell中执行命令,打开VS2013对应的开发者命令提示符(比如"VS2013 x86 Native Tools Command Prompt"),确保VS的编译环境变量已正确加载。

  • 执行正确的scons命令
    使用修改后的版本号参数执行编译:

    scons SKIPUTILS="NSIS Menu" SKIPPLUGINS=all MSVS_VERSION=12.0
    
  • 可选:zlib路径配置
    如果编译时出现zlib相关找不到文件的错误,需在命令中指定zlib的安装路径:

    scons SKIPUTILS="NSIS Menu" SKIPPLUGINS=all MSVS_VERSION=12.0 ZLIB_ROOT="你的zlib安装目录路径"
    

内容的提问来源于stack exchange,提问作者Surbhi Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:54:53