Qt Cmake编译

此处以mingw32编译器为例演示

保证cmake已经安装且版本大于2.28

  • 1.添加Qt编译器路径到系统path中 比如:C:\Qt\Qt5.13.0\Tools\mingw730_32\bin
  • 2.修改CMakeLists.txt中的Qt安装路径 比如:set(QT_PATH “C:/Qt/Qt5.13.0/5.13.0/mingw73_32”)
  • 3.打开命行切换到Project目录下执行命令
cd build
cmake -G “MinGW Makefiles” ..  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install
mingw32-make.exe

等待执行完毕生成Project.exe

例子

cmake_minimum_required(VERSION 2.8)
project(Project)
set(TARGET Project)

# Qt_PATH 为 Qt 的安装地址
set(QT_PATH "D:/QT/Qt5.14.2/5.14.2/mingw73_32")
set(CMAKE_PREFIX_PATH ${QT_PATH}/lib/cmake)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
# 匹配文件
file(GLOB SOURCE_FILE ${PROJECT_SOURCE_DIR}/src/*.cpp)
file(GLOB RESOURCE_FILE ${PROJECT_SOURCE_DIR}/src/*.qrc)
file(GLOB HEADER_FILE ${PROJECT_SOURCE_DIR}/src/*.h)
file(GLOB UI_FILE ${PROJECT_SOURCE_DIR}/src/*.ui)
file(GLOB RC_FILE ${PROJECT_SOURCE_DIR}/src/*.rc)

set(QT Core Gui Xml Widgets PrintSupport)


find_package(Qt5 COMPONENTS ${QT} REQUIRED)

add_executable(${TARGET} WIN32 ${SOURCE_FILE} ${HEADER_FILE} ${UI_FILE} ${RESOURCE_FILE})
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_LIST_DIR}/src/customplot/)
target_link_libraries(${TARGET} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml Qt5::PrintSupport)
### 使用CMake配置和编译Qt项目以连接MySQL 为了使Qt项目能够成功连接到MySQL数据库,需要先确保已正确安装并配置好所需的依赖项。具体来说,这涉及到获取MySQL库及其头文件的位置,并设置相应的路径以便于CMake识别。 对于Qt 6.2.4版本而言,由于官方提供的源码包内`mysql`插件目录下的确不再提供`.pro`构建脚本而是改用了`CMakeLists.txt`作为构建描述文件[^1],因此推荐采用基于CMake的方式来进行驱动程序的编译工作。 #### 准备阶段 - **确认环境准备** 需要预先准备好MySQL客户端开发库以及对应的头文件位置。可以从MySQL官方网站下载适合操作系统的二进制分发版,并解压至指定位置。例如: ```bash export MYSQL_PATH=/path/to/mysql # 替换为实际路径 ``` - **验证工具链** 确认系统上已经安装了支持C++标准的新版本GCC或MSVC编译器之一,并将其加入PATH环境变量中;另外还需保证CMake最新稳定版可执行文件同样位于该环境中。 #### 编写CMakeLists.txt 创建一个新的Qt应用程序工程结构,在根目录下放置一个名为`CMakeLists.txt`的文本文件用于定义项目的元数据及构建逻辑。以下是简化后的模板示例: ```cmake # 设置最低要求的CMake版本号 cmake_minimum_required(VERSION 3.15) # 定义项目名称与默认使用的编程语言 project(MyApp VERSION 0.1 LANGUAGES CXX) # 查找Qt模块并将必要的组件添加进来 find_package(Qt6 COMPONENTS Core Sql REQUIRED) if(NOT TARGET Qt6::Core OR NOT TARGET Qt6::Sql) message(FATAL_ERROR "Failed to find required Qt components.") endif() add_executable(${PROJECT_NAME} main.cpp ) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Sql ) set(CMAKE_PREFIX_PATH ${MYSQL_PATH}) find_package(MySQL REQUIRED) target_include_directories(${PROJECT_NAME} PUBLIC $<TARGET_PROPERTY:MySQL::Client,INTERFACE_INCLUDE_DIRECTORIES> ) target_link_libraries(${PROJECT_NAME} PRIVATE MySQL::Client) ``` 上述代码片段展示了如何利用CMake指令集来定位本地存在的Qt框架实例,并引入其核心(`Core`)和服务端口层(`Sql`)两个部分。接着尝试寻找外部提供的MySQL接口库,一旦发现则继续完成目标链接关系的确立过程。 #### 执行构建流程 打开终端窗口切换到包含刚才编辑好的`CMakeLists.txt`所在的文件夹处,依次运行下面几条命令启动整个自动化组装管线: ```bash mkdir build && cd build cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DMySQL_INCLUDE_DIR=${MYSQL_PATH}/include \ -DMySQL_LIBRARY=${MYSQL_PATH}/lib/libmysqlclient.a \ # 对应Windows平台则是 .lib 后缀形式 make -j$(nproc) || make # Linux/macOS 上可用 nproc 获取CPU核数加速多线程编译; Windows 用户可以省略此参数 ``` 如果一切顺利的话,此时应该可以在当前子目录下看到新生成的应用程序二进制文件了。接下来就可以编写业务逻辑代码测试是否能正常访问远程数据库资源啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒足饭饱抡大锤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值