CMake编译Qt

本文介绍了如何使用CMake编译Qt项目,包括下载Qt SDK、配置环境、编译Qt、处理UI文件和Q_OBJECT宏。过程中提到了遇到的路径问题、编译时间长以及CMakeLists.txt的编写细节,特别指出EXECUTE_PROCESS命令中COMMAND后面不应加引号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

貌似有个CMake教程上说过“不要使用CMake编译Qt”,原因是Qt有自己的QMake,用CMake会费时费力,不过为了能把所有工程采用同样的编译方式,还是尝试了一下,的确很麻烦。

首先需要下载Qt SDK,因为打算用VS2010编译,所以下载了everywhere的4.7b2版本(注意:4.6.3不支持2010,强编会出错,4.7b2静态编译也会有同样的问题,估计正式版会有改善吧)

编译整体还是比较简单的

  1. 把VS目录下的vcvars32.bat复制到qt目录下
  2. 打开控制台,首先运行vcvars32.bat
  3. configure –platform win32-msvc2010
  4. nmake
  5. 等待N长时间编译完成,真的非常长时间
  6. 编译结果6G,保留bin,include,lib目录即可

4.7的编译有个缺点就是所有路径都是完整路径会写死,且不能选择编译结果的输出路径,所以要是打算多次编译一定要确定好目录,否则会很麻烦。

然后写一个简单的CMakeLists.txt文件:

#Project Name
PROJECT(BookStar)

SET(QT_FOLDER D:/qt-4.7.0-b2)

# include directories
INCLUDE_DIRECTORIES(inc
                    ${PROJECT_BINARY_DIR}
                    ${QT_FOLDER}/include)

# lib directories
LINK_DIRECTO

### 如何使用CMake构建和编译Qt项目 #### 配置环境 为了成功使用 CMake 构建 Qt 项目,需要确保安装了必要的工具链。这包括 CMakeQt 开发库以及支持的编译器(如 GCC 或 MSVC)。此外,在环境中设置 `Qt` 的路径以便于 CMake 能够找到对应的模块是非常重要的[^3]。 #### 创建项目目录结构 创建一个清晰合理的项目目录结构对于大型项目的维护至关重要。通常情况下,可以按照以下方式组织文件夹: - **src/** 存放源代码文件。 - **ui/** 存放 `.ui` 界面定义文件。 - **resources/** 存放资源文件(如图片、图标等)。 - **translations/** 存放示例中的翻译文件。 这种分层结构有助于提高可读性和协作效率[^1]。 #### 编写 CMakeLists.txt 文件 以下是用于构建简单 Qt 应用程序的一个典型 `CMakeLists.txt` 示例: ```cmake # 设置最低版本要求 cmake_minimum_required(VERSION 3.15) # 定义项目名称及其使用的语言 project(MyQtApp VERSION 0.1 LANGUAGES CXX) # 查找并加载 Qt 模块 find_package(Qt6 COMPONENTS Core Gui Widgets REQUIRED) # 将当前目录下的所有 .cpp/.h 文件加入到变量 SOURCES 中 set(SOURCES src/main.cpp src/mainwindow.cpp) # 处理 UI 文件转换为 cpp qt_add_ui_files(UI_SOURCES ui/mainwindow.ui) # 添加资源文件处理 qt_add_resources(QRC_RESOURCES resources/resources.qrc) # 主要目标:生成可执行文件 add_executable(${PROJECT_NAME} ${SOURCES} ${UI_SOURCES} ${QRC_RESOURCES}) # 连接 Qt 所需的核心组件 target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets) ``` 这段脚本实现了几个重要功能: - 使用 `find_package()` 函数定位所需版本的 Qt 并导入其核心模块[^2]。 - 利用了现代 CMake 提供的功能简化了对 `.ui` 和 `.qrc` 文件的操作[^4]。 #### 在 Qt Creator 中集成 CMake 如果希望借助 IDE 来完成开发工作流,则推荐使用 Qt Creator。该工具内置了对 CMake 的良好支持,只需打开已有的 `CMakeLists.txt` 即可自动解析依赖项并配置好调试/发布模式。 --- ####
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值