QT Qmake 方式在visual studio中的 环境配置

一、前提条件

1. 已安装 Qt ,通过Archive选择定制版本及qmake编译环境(如 Qt 6.63+ MSVC2019 64-bit)

 2. 已安装 Visual Studio(2019 或 2022 或2026)

 3. 已有 Qt 项目(含 .pro 文件)

二、安装步骤

1.安装 Qt Visual Studio Tools 插件

2.添加编译路径(包含qmake.exe)

  1. 菜单栏 → Qt VS Tools → Qt Options
  2. 切换到 Qt Versions 选项卡
  3. 点击 Add
    • Version name: 任意名称,如 Qt 6.5.0 MSVC2019
    • Path: 填写你的 Qt 安装目录(不是 bin 目录!),例如:text

      编辑

      C:\Qt\6.5.0\msvc2019_64

    ✅ 此目录下应包含 bin\qmake.exeinclude\lib\ 等子目录

3.配置项目属性,平台工具集选visual studio 2019 v142

三、项目配置

1.先用qt 创建项目,会自带.pro

2.用vs 打开.pro 项目

3.建立baseLibrary 需要添加qt模块,如下:

4.项目导入基础库

四 、常见问题

Q1: 使用visual studio 正常编译,而使用qt编译报错,D:\99.Software\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\cstddef(12): fatal error C1083: 无法打开包括文件: “stddef.h”: No such file or directory

🔧 你现在要做的

打开 Visual Studio Installer → 修改 VS 2019 → 在“单个组件”中搜索 “CRT” → 勾选 C++ Universal CRT SDK → 安装。

根本原因分析

尽管你安装了 Visual Studio 2019 Professional,但以下任一情况都可能导致此问题:

  1. Windows SDK 未安装 或 安装不完整
    • stddef.h 实际位于 Windows SDK 的头文件目录中(如 C:\Program Files (x86)\Windows Kits\10\Include\<version>\ucrt\stddef.h
    • MSVC 运行时库(UCRT)依赖 Windows SDK
  2. Qt Creator 未在正确的 Visual Studio 开发环境中启动
    • 直接双击 Qt Creator 启动时,不会自动加载 VS 的环境变量(如 INCLUDELIBUniversalCRTSdkDir 等)
    • 导致 cl.exe 找不到 SDK 头文件路径
  3. Windows SDK 版本与项目不兼容或损坏

从 Visual Studio 开发者命令提示启动 Qt Creator(最推荐)

  1. 搜索并打开:
    x64 Native Tools Command Prompt for VS 2019
    (注意:必须是 x64,因为你用的是 64 位 Qt)
  2. 在命令行中启动 Qt Creator:bat
    "D:\99.software\Qt\Tools\QtCreator\bin\qtcreator.exe"

如果是qmake的项目的话,要把默认的Cmake 3.30.5(default)设置成None 或者选择visual studio的cmake.exe

Q2. 10.0.26100.0 10.0.22621.0 10.0.19041.0 10.0.10240.0 系统装了四个windows sdk版本 最终指向了最新的Windows 11 24H2 预览版10.0.26100.0 ,报错LNK1104: 无法打开 kernel32.lib,原因:

MSVC 工具链未激活没有运行 vcvars64.bat,导致 LIB 环境变量未指向任何 SDK 的 lib 目录

解决方案:确保使用 兼容且存在的 SDK

✅ 步骤 1:确认当前构建使用的 SDK 版本

Qt + MSVC 项目默认会使用 最新安装的 Windows SDK,但你可以强制指定。

方法 A:通过 Visual Studio 开发者命令行验证
  1. 打开:text

    编辑

    开始菜单 → Visual Studio 2019 → x64 Native Tools Command Prompt
  2. 执行:cmd

    编辑

    echo %WindowsSdkDir%
    echo %WindowsSDKLibVersion%
    输出示例:text

    编辑

    C:\Program Files (x86)\Windows Kits\10\
    10.0.22621.0\
  3. 检查该目录下是否存在 kernel32.lib:cmd

    编辑

    dir "%WindowsSdkDir%Lib\%WindowsSDKLibVersion%um\x64\kernel32.lib"

✅ 如果能列出文件,说明环境正常。


✅ 步骤 2:在 Qt Creator 中确保 Kit 配置正确

  1. 打开 Tools → Options → Kits
  2. 选择你正在用的 Kit(如 “Desktop Qt 6.6.3 MSVC2019 64-bit”)
  3. 点击 Compiler 查看是否为:
    • Microsoft Visual C++ Compiler 16.x (amd64) ← 对应 VS 2019(v142)
  4. 不要使用 VS 2022 的编译器(Compiler 17.x),除非你重新编译了 Qt。

⚠️ Qt 官方提供的 msvc2019_64 必须搭配 VS 2019 工具链(v142),不能直接用 VS 2022 的默认工具链。


✅ 步骤 3:强制指定 Windows SDK 版本(可选)

如果你怀疑链接器用了错误的 SDK(比如预览版 26100.0 出现兼容问题),可以锁定到稳定版,如 10.0.19041.0 或 10.0.22621.0

方法:在 .pro 文件中添加(qmake 项目)

pro

编辑

# 强制使用 Windows 10 2004 SDK (10.0.19041.0)
QMAKE_WINSDK_VERSION = 10.0.19041.0

或使用最新稳定版:

pro

编辑

QMAKE_WINSDK_VERSION = 10.0.22621.0

✅ 这会告诉 qmake 在生成 .vcxproj 时写入 <WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>

验证:

重新运行 qmake 后,打开生成的 BaseLibrary.vcxproj,搜索 WindowsTargetPlatformVersion,确认值是你指定的。


✅ 步骤 4:启动 Qt Creator 的正确方式

不要直接双击 qtcreator.exe

而是通过 VS 2019 开发者命令行 启动,以继承完整环境变量:

cmd

编辑

:: 先激活 VS 2019 x64 环境
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"

:: 再启动 Qt Creator
"D:\99.Software\Qt\Tools\QtCreator\bin\qtcreator.exe"

这样 Qt Creator 内部调用 link.exe 时,就能自动找到 kernel32.lib


✅ 步骤 5:清理并重建

  1. 删除整个构建目录(如 x64/Debug
  2. 在 Qt Creator 中:
    • Build → Clean All
    • Build → Run qmake
    • Build → Rebuild Project

🧪 额外诊断:手动测试链接

在 VS 2019 x64 命令行中执行:

cmd

编辑

link /lib /machine:x64 kernel32.lib

如果报错,说明 SDK 环境未激活;如果成功(生成 kernel32.lib 的符号列表),说明环境正常,问题出在 Qt Creator 的 Kit 配置。


✅ 推荐配置(稳定组合)

表格

组件推荐版本
Qt6.6.3 msvc2019_64
Visual Studio2019 (v142)
Windows SDK10.0.19041.0 或 10.0.22621.0(避免预览版 26100.0
启动方式通过 VS 2019 x64 Native Tools Command Prompt 启动 Qt Creator

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值