Qt + CMake 关键字学习清单
🧱 一、CMake 基础关键字(通用)
| 关键字 | 说明 | |
|---|---|---|
cmake_minimum_required(VERSION x.y) | 指定 CMake 最低版本 | |
project(NAME VERSION x.y) | 定义项目名称和版本 | |
set(...) | 设置变量值 | |
option(...) | 定义构建选项(ON/OFF) | |
file(GLOB ...) | 查找指定文件列表 | |
add_executable(...) | 添加可执行程序 | |
add_library(...) | 添加静态或动态库 | |
target_link_libraries(...) | 设置依赖库 | |
target_include_directories(...) | 添加头文件路径 | |
target_compile_definitions(...) | 添加预处理器宏定义 | |
add_dependencies() | 指定目标之间的依赖关系,确保某个目标在另一个目标之前构建完成 | ` |
add_subdirectory(...) | 添加子目录(子项目) | |
install(...) | 安装构建产物 | |
add_custom_target(...) | 自定义目标 | |
add_custom_command(...) | 自定义命令 | |
find_package(...) | 查找第三方库 | |
message(...) | 输出调试信息 |
🧩 二、Qt 相关 CMake 命令(按版本区分)
✅ Qt6(推荐)
| 命令 | 说明 |
|---|---|
find_package(Qt6 REQUIRED COMPONENTS ...) | 导入 Qt6 模块 |
qt_add_executable(...) | 添加 Qt6 应用 |
qt_add_qml_module(...) | 添加 QML 模块,注册插件 |
qt_import_qml_plugins(...) | 导入 QML 插件 |
qt_finalize_executable(...) | 构建 Qt 项目收尾处理 |
qt_standard_project_setup() | 标准 Qt 设置(简化配置) |
🧾 Qt5(较旧方式)
| 命令 | 说明 |
|---|---|
qt5_wrap_cpp(...) | 处理带 Q_OBJECT 的头文件 |
qt5_add_resources(...) | 加载 .qrc 资源 |
qt5_use_modules(...) | 引入模块(较旧) |
🌍 三、Qt 国际化相关命令
| 命令 / 工具 | 说明 |
|---|---|
lupdate | 提取源码中的 tr()、qsTr() 到 .ts 文件 |
lrelease | 将 .ts 翻译文件生成 .qm 可执行文件用 |
add_custom_target(...) | 创建翻译相关构建步骤 |
QTranslator | Qt C++ 端加载 .qm 文件 |
tr() / qsTr() | C++ / QML 翻译字符串函数 |
📁 四、常见 CMake 变量
| 变量 | 说明 |
|---|---|
CMAKE_CURRENT_SOURCE_DIR | 当前 CMakeLists.txt 所在路径 |
CMAKE_CURRENT_BINARY_DIR | 当前构建目录 |
CMAKE_SOURCE_DIR | 顶层项目路径 |
CMAKE_BINARY_DIR | 构建根目录 |
CMAKE_RUNTIME_OUTPUT_DIRECTORY | 可执行文件输出目录 |
CMAKE_LIBRARY_OUTPUT_DIRECTORY | 库文件输出路径 |
CMAKE_PREFIX_PATH | Qt/第三方库查找路径 |
PROJECT_NAME | 当前项目名称 |
PROJECT_VERSION | 项目版本 |
QT_VERSION_MAJOR | Qt 主版本号 |
CMAKE_INSTALL_PREFIX | 安装路径(默认 /usr/local) |
CMAKE_INSTALL_LIBDIR | 库安装路径(例如 lib/) |
📦 五、QML 模块资源相关
| 文件 / 工具 | 说明 |
|---|---|
qmldir | QML 模块描述文件 |
qt_add_qml_module(...) | 注册资源/QML组件 |
plugins.qmltypes | QML 插件元数据,辅助提示 |
qmlplugindump | 生成 plugins.qmltypes 的工具 |
QML_IMPORT_PATH | QML 模块搜索路径变量 |
📝 学习建议顺序
- 掌握基本 CMake 用法:项目结构 / 编译 / 依赖
- 理解 Qt 模块导入与构建(推荐 Qt6)
- 掌握
qt_add_qml_module与资源管理 - 熟悉国际化工作流:
.ts、.qm、QTranslator - 掌握安装、部署、打包流程(windeployqt/macdeployqt/install)
- 深入理解变量、宏定义、构建选项的配置