使用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
相关产品推荐
相关产品推荐

