跳转到内容
新建笔记

VS Code 与 Qt:先让 CMake 正确找到工具链

  1. VS Code 扩展找到 Qt 工具:决定快捷命令是否可用。
  2. CMake 找到 Qt 包与编译器:决定工程能否生成。
  3. 编译、链接并运行:验证 Qt 库、编译器 ABI 和运行库匹配。

扩展显示 Qt found 不等于工程已经可编译。原记录使用 qttools、qtconfigure,截图中 Search Mode 是 path,文字又要求切换到 cmake;缺少扩展准确版本,不能据此给所有扩展套同一设置。

下面适用于桌面 Qt 6 与匹配的本机编译器:

cmake_minimum_required(VERSION 3.21)
project(QtExample LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 REQUIRED COMPONENTS Widgets)
qt_standard_project_setup()
qt_add_executable(QtExample main.cpp)
target_link_libraries(QtExample PRIVATE Qt6::Widgets)
main.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QLabel label("Qt is ready");
label.resize(240, 80);
label.show();
return app.exec();
}

采用所安装 Qt 提供的 qt-cmake,或在本机构建配置中把 Qt 安装前缀传给 CMake。不要把个人绝对路径直接写进共享 CMakeLists.txt。Qt CMake 入门

旧 Qt 5 工程与交叉编译

跳转到“旧 Qt 5 工程与交叉编译”

原笔记的 Qt5_DIR 指向某台机器的 ARM Qt 5.12.9 安装。Qt 5 工程相应使用 find_package(Qt5 ... ) 和 Qt5::Widgets,不能只改路径却继续使用另一版本的包名。

ARM 交叉编译还需要目标工具链、sysroot、目标 Qt 与主机工具之间匹配。仅指定 Qt 包路径不足以完成交叉编译;应使用目标平台的 toolchain 配置。Qt 查找与交叉编译说明

先在终端完成 CMake configure 和 build,再让 VS Code 使用同一 preset/kit。切换 Qt 或编译器时使用独立构建目录,避免旧缓存干扰;最后验证程序启动时能找到平台插件。本文未在全部 Qt/编译器组合上实测,需记录自己成功运行的组合。

本笔记由 CSDN 原始记录 的文字与图片重新整理;正文中的代码、适用条件与说明已按本次审读补充。