如何一次性指定qmake目标的Windows SDK版本?
如何让qmake生成VS项目时指定目标Windows SDK版本?
我之前在配置Qt和VS环境时也踩过这个坑,每次生成项目后还要手动重定向SDK确实挺麻烦的。其实qmake本身就支持直接指定目标SDK版本,不用每次重复操作,下面给你几个实用的方法:
方法一:在单个项目的.pro文件中配置(推荐)
直接在你的Qt项目的.pro文件里添加一行配置,指定你已经安装的Windows SDK版本:
QMAKE_WINSDK_VERSION = 10.0.17763.0
这里的版本号要换成你电脑上实际安装的SDK版本——你可以通过VS安装器查看已安装的SDK,或者在控制面板的「程序和功能」里找到已安装的Windows SDK条目,复制对应的版本号就行。
方法二:全局配置(所有Qt项目生效)
如果希望所有用qmake生成的VS项目都默认使用同一个SDK版本,可以修改Qt的全局qmake配置:
- 找到Qt 5.10.1的安装目录,进入
mkspecs\win32-msvc2017文件夹(对应VS2017); - 打开里面的
qmake.conf文件,在合适的位置(比如其他QMAKE_变量附近)添加:QMAKE_WINSDK_VERSION = 你的SDK版本号 - 保存文件后,后续所有qmake生成的VS项目都会自动使用这个SDK版本。
方法三:命令行临时指定
如果只是临时给某个项目指定SDK,不想修改.pro文件或全局配置,可以在运行qmake时直接带参数:
qmake "QMAKE_WINSDK_VERSION=10.0.17763.0" your_project.pro
这样生成的VS项目就会直接绑定你指定的SDK版本,打开后就能正常构建,不用再手动重定向了。
小提示:如果不确定SDK版本号的正确格式,可以打开VS新建一个空C++项目,查看项目属性里的「Windows SDK版本」下拉选项,直接复制那里的版本字符串就不会出错啦。
内容的提问来源于stack exchange,提问作者Andy




