文章标题

Qt项目转换VS2022工程问题的小问题

在将 Qt 项目转换为 Visual Studio 工程时,可能会遇到 CMake 相关的报错问题,今天就来分享下对应的解决办法。

一、问题原因

由于在同一个构建目录中使用了不同的 CMake 生成器(比如从 “Visual Studio 16 2019” 切换到 “Visual Studio 17 2022”),导致 CMake 无法识别新的生成器,进而出现报错。

二、解决方法

(一)方法一:删除并重新创建构建目录

  1. 返回到项目根目录
    打开“Developer Command Prompt for VS 2022”,执行命令:
1
cd /d D:\QTproject\new_pro\samp6_2EventAndSignal
  1. 删除现有的 build_vs 目录
    在项目根目录下运行:
1
rmdir /s /q build_vs

注意此命令会永久删除该目录及其所有内容,确认无重要文件需保留。
3. 重新创建新的构建目录
可以使用不同目录名如 build_vs2022

1
2
mkdir build_vs2022
cd build_vs2022
  1. 运行 CMake 命令,指定正确的生成器
1
cmake -G "Visual Studio 17 2022" -A x64 -DQt6_DIR=D:\Qt\6.5.3\msvc2019_64\lib\cmake\Qt6..

各参数含义如下:

  • -G "Visual Studio 17 2022":指定生成器为 Visual Studio 2022。
  • -A x64:指定生成平台为 64 位。
  • -DQt6_DIR=...:指定 Qt 的 CMake 配置路径。
  • ..:表示 CMakeLists.txt 位于上一级目录。
  1. 编译解决方案(可选)
    • 使用 msbuild 编译
1
msbuild samp6_2EventAndSignal.sln /p:Configuration=Release /m:4

参数说明:

  • /p:Configuration=Release:指定编译配置为 Release,如需 Debug 版本则改为 /p:Configuration=Debug
  • /m:4:用 4 个并行线程编译加快速度。
    • 在 Visual Studio 中打开并编译
      1. 打开文件资源管理器,导航到 D:\QTproject\new_pro\samp6_2EventAndSignal\build_vs2022 目录。
      2. 双击 samp6_2EventAndSignal.sln 文件,用 Visual Studio 2022 打开。
      3. 在 Visual Studio 中进行开发、调试和编译操作。

(二)方法二:在现有构建目录中删除 CMake 缓存

  1. 导航到 build_vs 目录
1
cd /d D:\QTproject\new_pro\samp6_2EventAndSignal\build_vs
  1. 删除 CMake 缓存文件和生成目录
1
2
del /f /q CMakeCache.txt
rmdir /s /q CMakeFiles
  1. 重新运行 CMake 命令,指定正确的生成器
1
cmake -G "Visual Studio 17 2022" -A x64 -DQt6_DIR=D:\Qt\6.5.3\msvc2019_64\lib\cmake\Qt6..

三、其他注意事项

  1. 确保使用正确的命令提示符
    要使用“Developer Command Prompt for VS 2022”,可在开始菜单搜索后右键选择“以管理员身份运行”。
  2. 确认 Visual Studio 2022 安装了必要的组件
    打开 Visual Studio Installer,找到 Visual Studio 2022 点击“修改”,在“工作负载”选项卡确保选中“使用 C++ 的桌面开发”,在“单个组件”选项卡确认安装如“MSVC v143 - VS 2022 C++ x64/x86 build tools”等相关组件,缺少则勾选安装。
  3. 确认 CMake 版本
    建议使用 3.21 及以上版本,可用命令 cmake --version 查看,版本过旧需下载安装最新版并添加 bin 目录到系统 Path 环境变量。
  4. 确认 Qt6_DIR 路径正确
    确认 D:\Qt\6.5.3\msvc2019_64\lib\cmake\Qt6 目录存在且包含 Qt6Config.cmake 文件。

四、备用方案

若命令行方法不行,可尝试使用 Visual Studio 的图形界面来打开并配置 CMake 项目:

  1. 打开 Visual Studio 2022。
  2. 选择“打开本地文件夹”,导航到 D:\QTproject\new_pro\samp6_2EventAndSignal
  3. Visual Studio 会自动检测 CMakeLists.txt 并加载项目。
  4. 在 Visual Studio 中配置并生成项目。