Qt5 By CMake

本文介绍了如何使用CMake 2.8.4和3.4.0配置Qt5项目,包括设置CMakeLists.txt文件,处理.ui文件,自动生成moc文件,查找Qt库,组织源代码文件,并链接Qt5的Widgets, Core和Gui模块。" 127684803,14301123,Java毕业设计:供求信息网MyBatis系统与源码,"['Java', 'MyBatis', '数据库设计', 'Web开发', '后端开发']

WITH CMake 2.8.4


FILE(GLOB FORMS "form/*.ui")

QT5_WRAP_UI(FORMS_UIC ${FORMS})


FILE(GLOB MOCS "inc/test.h")

QT5_WRAP_CPP(HEADERS_MOC ${MOCS})


FILE(GLOB RES "qrc/*.qrc")

QT5_ADD_RESOURCES(RES_RCC ${RES})


INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}

ADD_EXECUTABLE(gui ${FILES} ${HEADERS_MOC} ${FORMS_UIC} ${RES_RCC})


SET(QT_USE_QTOPENGL TRUE)

QT_USE_QTNETWORK

QT_USE_QTOPENGL

QT_USE_QTSQL

QT_USE_QTXML

QT_USE_QTSVG

QT_USE_QTTEST

QT_USE_QTDBUS

QT_USE_QTSCRIPT

QT_USE_QTWEBKIT

QT_USE_QTXMLPATTERNS

QT_USE_PHONON



WITH CMake 3.4.0

源自:

http://www.cnblogs.com/xuhui24/p/6231514.html


#设置cmake版本号
cmake_minimum_required(VERSION 3.4.0)

#设置工程名称
project(HelloWorld)

#设置工程包含当前目录,非必须
set(CMAKE_INCLUDE_CURRENT_DIR ON) 

#设置自动生成moc文件,一定要设置
set(CMAKE_AUTOMOC ON) 

#查找需要的Qt库文件,最好每一个库都要写,Qt也会根据依赖关系自动添加
find_package(Qt5Widgets)  
find_package(Qt5Core)
find_package(Qt5Gui)

#查找当前文件夹中的所有源代码文件,也可以通过Set命令将所有文件设置为一个变量
FILE(GLOB SRC_FILES "./*.cxx") 
#同理,查找当前文件夹中所有的头文件
FILE(GLOB HEAD_FILES "./*.h") 
#同理,查找当前文件夹中所有的ui文件
FILE(GLOB UI_FILES "./*.ui") 

#通过Ui文件生成对应的头文件,一定要添加
qt5_wrap_ui(WRAP_FILES ${UI_FILES})

#添加资源文件
set(RCC_FILES rcc.qrc)

#将ui文件和生成文件整理在一个文件夹中,非必须
source_group("Ui" FILES ${UI_FILES} ${WRAP_FILES} )

#创建工程文件
add_executable(${PROJECT_NAME} ${SRC_FILES} ${HEAD_FILES} ${RCC_FILES} ${WRAP_FILES})

#添加Qt5依赖项
target_link_libraries(${PROJECT_NAME} Qt5::Widgets Qt5::Core Qt5::Gui)

### 配置CMake以正确定位QtCharts5Config.cmake文件 当遇到 `CMake` 无法找到 `QtCharts5Config.cmake` 文件的问题时,通常是因为未正确设置 `CMAKE_PREFIX_PATH` 或者缺少必要的开发包。以下是解决问题的方法: #### 设置 `CMAKE_PREFIX_PATH` 确保 `Qt5Charts` 的安装路径被添加到 `CMAKE_PREFIX_PATH` 中。可以通过以下方式实现: 1. **手动指定路径** 如果已知 `Qt5Charts` 安装的具体位置(例如 `/usr/lib/x86_64-linux-gnu/cmake/Qt5Charts`),可以在命令行运行 CMake 时通过 `-DCMAKE_PREFIX_PATH` 参数传递该路径: ```bash cmake -DCMAKE_PREFIX_PATH=/path/to/qt5 .. ``` 2. **在 `CMakeLists.txt` 中设置** 可以直接在项目的 `CMakeLists.txt` 文件中添加如下代码来设置前缀路径: ```cmake set(CMAKE_PREFIX_PATH "/path/to/qt5" ${CMAKE_PREFIX_PATH}) ``` #### 使用 `find_package` 查找 Qt5Charts 在 `CMakeLists.txt` 文件中,确保正确调用了 `find_package` 来查找 `Qt5Charts` 模块。示例如下: ```cmake find_package(Qt5 REQUIRED COMPONENTS Widgets Charts) ``` 如果模块名称不匹配或者缺失,则可能导致错误。 #### 确认 Qt5Charts 开发包已安装 如果没有安装 `Qt5Charts` 的开发包,即使设置了正确的路径也无法成功定位其配置文件。可以尝试重新安装或确认是否已经安装了对应的开发包。对于基于 Debian 的系统,可以使用以下命令检查并安装: ```bash sudo apt install qtcharts5-dev ``` #### 示例完整的 `CMakeLists.txt` 配置 以下是一个针对 ROS2 和 Qt5 的典型项目配置示例[^4],其中包含了对 `Qt5Charts` 的支持: ```cmake cmake_minimum_required(VERSION 3.5) project(MyProject LANGUAGES CXX) set(QT_VERSION_MAJOR 5 CACHE STRING "Major version of Qt") find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Charts) add_executable(my_app src/main.cpp src/mainwindow.cpp include/mainwindow.h ui/mainwindow.ui ) target_link_libraries(my_app PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Charts ) # Optional: Set prefix path explicitly if needed if(NOT DEFINED ENV{QTDIR}) set(CMAKE_PREFIX_PATH "/opt/Qt/${QT_VERSION}" ${CMAKE_PREFIX_PATH}) endif() ``` #### 常见错误排查 - 错误提示类似于 `Could not find a package configuration file provided by "Qt5Charts"` 表明可能未正确安装 `Qt5Charts` 或者路径未正确设置。 - 若仍然存在问题,可打印调试信息查看实际搜索路径: ```cmake message(STATUS "CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}") ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值