概述
本章讲解如何使用came 创建qt 的工程
说明
cmake 的基本指令不是本章说明重点,请各位自行学习,先来配置看一下
cmake_minimum_required(VERSION 3.1.0)
project(helloworld VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
if(CMAKE_VERSION VERSION_LESS "3.7.0")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
endif()
find_package(Qt5 COMPONENTS Widgets REQUIRED)
add_executable(helloworld
mainwindow.ui
mainwindow.cpp
main.cpp
resources.qrc
)
target_link_libraries(helloworld Qt5::Widgets)
构建
Qt 依赖于一些捆绑的代码生成工具,例如moc元对象代码生成、uic小部件布局和填充以及rcc虚拟文件系统内容生成。这些工具可能会被自动调用cmake(1)如果满足适当的条件。
set(CMAKE_AUTOMOC ON)
该CMAKE_AUTOMOC设置在需要时自动运行 moc
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
发现路径
未来find_package 成功有2种路径,
1、 设置 CMAKE_PREFIX_PATH 环境变量,这是推荐方式
2、设置 Qt5_DIR 在本地 Qt5Config.cmake 文件
导入的库
加载的每个 Qt 模块定义了一个 CMake 库目标。目标名称以 开头Qt5::,后跟模块名称。例如:Qt5::Core,Qt5::Gui。传递库目标的名称target_link_libraries以使用相应的库。
参考资料
https://cmake.org/cmake/help/latest/manual/cmake-qt.7.html#autouic
https://doc.qt.io/qt-5/cmake-manual.html