欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cmake qt5

程序员文章站 2024-01-02 22:58:04
...

项目使用cmake构建,用到了qt5,这里记录下。

qt5的cmake配置脚本

cmake_policy(VERSION 3.9)
project(Demo VERSION 0.1)
cmake_minimum_required(VERSION 3.9)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOMOC ON)  # 让qt5自动为QObject子类生成moc类,即添加信号和槽函数的实现
set(CMAKE_AUTORCC ON)  # 让qt5将资源文件 (图片等)编译成字符串,并编译到lib库中

set(CMAKE_PREFIX_PATH $ENV{QTDIR594})       # 设置qt5根目录,必须有
find_package(Qt5 COMPONENTS Core Gui Qml Quick REQUIRED)  # 搜索用到的qt5模块

set(HEADERS 
    appglobal.h
)

set(SOURCES 
    main.cpp
    appglobal.cpp
)

set(RESOURCES 
    qml.qrc
)

set(QMLS
    main.qml
)

add_executable(${PROJECT_NAME} ${HEADERS} ${SOURCES} ${RESOURCES} ${QMLS})
target_link_libraries(${PROJECT_NAME}  Qt5::Core Qt5::Gui Qt5::Qml Qt5::Quick)  # 关键一句,不断链接库,还包含对应的qt头文件目录

查找qt模块的功能

这里重点说下查找qt模块的功能,qt5这个功能做得比较好。
find_package(Qt5 COMPONENTS Widgets) 成功执行时,会生成以下cmake变量

Variable Description
Qt5Widgets_VERSION Qt5Widgets 版本号
Qt5Widgets_LIBRARIES Qt5Widgets 库路径
Qt5Widgets_INCLUDE_DIRS Qt5Widgets 包含路径
Qt5Widgets_DEFINITIONS Qt5Widgets 定义的宏
Qt5Widgets_COMPILE_DEFINITIONS Qt5Widgets 编译参数
Qt5Widgets_FOUND Qt5Widgets 查找成功标志变量
Qt5Widgets_EXECUTABLE_COMPILE_FLAGS 链接 Qt5Widgets 库的可执行文件的编译参数

在这句之后

target_link_libraries(${PROJECT_NAME}  Qt5::Widgets)

会自动悄悄执行include_directories(Qt5Widgets_INCLUDE_DIRS),十分方便。
回头要研究下,qt5怎么写的cmake配置。

上一篇:

下一篇: