Qt qbs生成VS2015解决方案编译报错:Release参数异常
解决qbs生成VS2015项目后编译出现冗余'Release'参数的问题
我来帮你搞定这个头疼的问题——你遇到的是qbs 1.11.0版本里Visual Studio 2015生成器的一个小bug。当你在qbs generate命令里指定config:Release时,生成器会错误地把Release当成额外参数塞进NMake的构建命令里,导致编译时抛出EXEC : error : Unexpected command line parameter 'Release',而且重新生成解决方案后这个冗余参数还会自动回来,确实烦人。
下面给你几个实用的解决办法,按推荐程度排序:
1. 最简单的规避方法:生成时不指定config参数
直接去掉命令里的config:Release,先生成默认的VS项目:
qbs generate -g visualstudio2015 profile:qt595
打开生成的解决方案后,在VS顶部工具栏的解决方案配置下拉框里切换到Release,再按Ctrl+Shift+B编译就没问题了。这种方法完全绕开了bug,操作零成本。
2. 彻底解决:升级qbs版本
这个参数冗余的bug在qbs 1.12.0及之后的版本已经被修复了。你可以下载适配Qt 5.9.5的qbs 1.12.0或更高版本安装,之后再执行你原来的生成命令:
qbs generate -g visualstudio2015 profile:qt595 config:Release
此时生成的VS项目里NMake命令不会再出现多余的Release参数,编译就能正常运行了。
3. 进阶方案:修改qbs生成器模板(适合有开发经验的用户)
如果你暂时没法升级qbs,可以手动修改qbs的VS生成器模板,阻止冗余参数的添加:
- 找到qbs安装目录下的
share/qbs/generators/visualstudio文件夹 - 打开
vsproj.cpp文件,定位到处理配置参数的代码段,移除把config值重复追加到命令行的逻辑 - 如果你是自行编译的qbs版本,重新编译qbs;如果是安装版,替换对应的模板文件(记得先备份原文件)
不过这个方法需要对qbs源码有一定了解,只推荐给有能力折腾的用户。
内容的提问来源于stack exchange,提问作者Jimmy Chen
相关产品推荐
相关产品推荐

