loading...
关于QT的MSVC编译器的安装与报错解决
发表于:2025-04-05 |
字数统计: 615 | 阅读时长: 2分钟 | 阅读量:

安装

Windows 10 SDK的安装

vs2022新版本将windows10 sdk和分开了我选择了单独安装Microsoft的windows 10 SDK
多个sdk环境不能共存,可以在control panel搜索并卸载,或者使用安装器去卸载

Microsoft Windows 10 SDK下载地址:https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/
此处我选择Version 2004(10.0.19041.0)版本
Windows_SDK
Windows_SDK
Windows 10 SDK的文件路径可以在C:\Program Files (x86)\Windows Kits\10找到
Windows_SDK
将C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64添加到环境变量(将rc.exe添加到环境变量)
Windows_SDK

Visual Studio 2022的安装

目前QT5.12.8的初始安装界面只支持到MSVC2017编译器,且QT5.12.8无法检测到VS2022的MSVC v141 - VS 2017 build tool及其以上的版本,推测是VS2022的框架版本过高,无法检测,而VS2022的MSVC v140 - VS 2015 build tool会单独在c盘创建一个C:\Program Files (x86)\Microsoft Visual Studio 14.0,使得MSVC2015能被检测到,而如果想MSVC v141 - VS 2017 build tool能被检测到只能去下载VS2017版本,但是微软官方已经不提供VS2017下载器了,且多个VS版本不兼容如VS2022和VS2017不能同时安装

Microsoft Visual Studio 2022下载地址:https://visualstudio.microsoft.com/downloads/
在此提供一个VS2017的下载地址:https://gitcode.com/open-source-toolkit/1f420/blob/main/vs_community__%E7%A4%BE%E5%8C%BA%E7%89%88.zip
MSVC
点击安装启动器
MSVC
MSVC
选择安装位置
MSVC
点击安装
MSVC

(可选)
添加注册表的检测路径,右键,NEW,String Value
MSVC
双击修改后面的值
MSVC
这样就能检测到MSVC 2019后面的编译器了

点击QT上方,工具->选项->Kits,检测到MSVC2015编译器
MSVC
点击QT上方,点击Debugger,检测到Windows 10 SDK下C:\Program Files (x86)\Windows Kits\10\Debuggers下的cdb.exe
MSVC

提示缺少rc.exe,此时就是QT对MSVC的支持不够,需要将windows kit中的Debugger内bin里x64的rc.exe复制进入E:\QT\5.12.8\5.12.8\msvc2015_64\bin内
MSVC

将C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64内的rc.exe文件复制到E:\QT\5.12.8\5.12.8\msvc2015_64\bin内
MSVC
MSVC

成功运行
MSVC

报错

对中文报错

中文报错
原因
QT的MSVC对UTF-8的支持不好,无法识别UTF-8文件
解决方法

  1. 通过vscode右下角保存GB2312格式或者再次保存UTF-8格式
  1. 在.pro文件添加如下代码,使得MSVC支持UTF-8文件
    1
    2
    3
    4
    5
    6
    7
    win32 {
    QMAKE_CXXFLAGS += /source-charset:utf-8 /execution-charset:utf-8
    QMAKE_CFLAGS += /source-charset:utf-8 /execution-charset:utf-8
    }

    # 确保moc工具正确处理UTF-8
    QMAKE_MOC += -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII
上一篇:
Uniapp的安装
下一篇:
关于QT的mysql驱动未安装解决方案