手把手教CMake编译Qt5工程

2023-05-16

一、新建CMakeLists.txt

        可以在工程目录下新建一个名为CMakeLists.txt文件,

亦或是,在Qtcreator中,右键项目,添加新文件,选择General中的Empty File,修改名称为CMakeLists.txt。

 

 此时,你会看见生成了一个叫other files的文件夹,里面就有CMakeLists.txt文件

二、编写CMakeLists.txt

1.#设置cmake版本号(视自己cmake版本为定)
2.cmake_minimum_required(VERSION 3.4.0)
3. 
4.#设置工程名称
5.project(QtDemo)
6. 
7.#设置工程包含当前目录,非必须
8.set(CMAKE_INCLUDE_CURRENT_DIR ON)
9. 
10.#打开全局moc,设置自动生成moc文件,一定要设置
11.set(CMAKE_AUTOMOC ON)
12.#打开全局uic,非必须
13.set(CMAKE_AUTOUIC ON)
14.#打开全局rcc,非必须,如需打开,注意修改33行的qrc文件名
15.#set(CMAKE_AUTORCC ON)
16.
17.#查找需要的Qt库文件,最好每一个库都要写,Qt也会根据依赖关系自动添加
18.find_package(Qt5Widgets) 
19.find_package(Qt5Core)
20.find_package(Qt5Gui)
21.
22.#查找当前文件夹中的所有源代码文件,也可以通过Set命令将所有文件设置为一个变量
23.FILE(GLOB SRC_FILES "./*.cpp")
24.#查找设置当前文件夹中所有的头文件
25.FILE(GLOB HEAD_FILES "./*.h")
26.#查找设置当前文件夹中所有的ui文件
27.FILE(GLOB UI_FILES "./*.ui")
28.
29.#通过Ui文件生成对应的头文件,一定要添加
30.qt5_wrap_ui(WRAP_FILES ${UI_FILES})
31.
32.#添加资源文件,非必须,一旦采用,注意修改相应的qrc文件名
33.#set(RCC_FILES rcc.qrc)
34.
35.#将ui文件和生成文件整理在一个文件夹中,非必须
36.source_group("Ui" FILES ${UI_FILES} ${WRAP_FILES} )
37.
38.#创建工程文件
39.add_executable(${PROJECT_NAME} ${SRC_FILES} ${HEAD_FILES} ${RCC_FILES} ${WRAP_FILES})
40.
41.#添加Qt5依赖项
42.target_link_libraries(${PROJECT_NAME} Qt5::Widgets Qt5::Core Qt5::Gui)

三、编译与运行

        在工程文件下新建一个“build”目录

         

1、qtcreator编译

        左侧找到“项目”后点击,在“构建设置”中找到“构建步骤”

        “构建目录”选择我们新建的build文件夹

        删除“qmake”,然后点击“添加构建步骤”中的“自定义处理步骤”

        命令一栏中,填写 “ cmake”

        参数填写  “../”

        make 不用删除,不过要保证在cmake下面,参数选择 -j4

        (-j4 表示用多少个线程进行编译   你要是线程多,可以 -j16或者-j8)

         设置好后,项目处构建加运行,嚯嚯 ,跑起来了!

        

 2、终端编译

        在build目录下,开启终端,然后输入命令:“cmake ../ && make ”(注:make后面参数-j4 可加可不加)

        然后就会看见build目录下生成这些文件

        

         qt_demo就是生成的可执行程序

        然后终端运行 ./qt_demo

        就会看见界面了

        

       

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手把手教CMake编译Qt5工程 的相关文章

随机推荐

  • Java爬虫入门详解(Selenium)

    目录 一 Selenium简介 二 Selenium组成 三 Selenium特点 四 案例演示 1 下载驱动包 2 创建项目并导入依赖 3 基础配置 4 案例演示 1 元素选择方式 2 在文本框中输入内容 3 获取单个元素 4 获取多个元
  • Python绘图并标记出指定点(最大值点)

    用Python代码 xff0c 绘制图形并在图上最大值点处用箭头标记出数值 import numpy as np import matplotlib pyplot as plt 生成数据 xff0c 这里生成一个正弦曲线 x 61 np l
  • 如何在GitHub发布自己的项目

    GitHub网址 GitHub Where the world builds software GitHub xff0c 没注册的可以自行注册 xff0c 注册过的可以直接使用 一 create a new repository xff08
  • Ubuntu22.04开启root用户登陆

    1 先确保root用户的密码已修改完成 2 普通用户登陆 xff0c 打开终端使用su指令切换到root用户 3 修改配置 3 1vi打开文件 etc pam d gdm password和 etc pam d gdm autologin
  • 什么是内聚 内聚是什么 内聚的种类有哪些

    内聚标志着一个模块内各个元素彼此结合的紧密程度 xff0c 它是信息隐藏和局部化概念的自然拓展 简单地说 xff0c 理想内聚的模块只做一件事情 设计时应该力求做到高内聚 xff0c 通常中等程度的内聚也是可以采用的 xff0c 而且效果和
  • git拉取更新远程代码(会放弃本地操作)

    此类情况是 自己放弃本地代码得编辑 xff0c 写崩了或者不想解决代码冲突 xff0c 只想要远程仓库得最新一版得代码 注意 xff1a 此操作会扔掉本地修改得代码 1 git branch 2 下载远程仓库最新代码 不做合并处理 git
  • ROS和STM32实现串口通信

    前言 实现ubuntu系统下的ROS和STM32完成串口数据收发 硬件 一 硬件设备 STM32F103ZE ubuntu18 04 二 硬件连接 STM32串口 43 TTL转USB模块 xff08 CH340 xff09 43 ubun
  • 【论文学习】基于贝叶斯分类的大学生关注热点事件微博文本分类方法研究——殷复莲 张晓宇 冯晴

    自己梳理一遍论文 xff0c 作学习用 基本信息 作者 xff1a 殷复莲 张晓宇 冯晴 xff08 中国传媒大学信息工程学院 xff09 摘要 xff1a 针对互联网 xff0c 尤其是微博平台中大学生用户产生的海量的文本分类问题 xff
  • Linux 文件权限之umask

    目录 一 文件默认创建权限二 文件默认创建权限掩码三 文件权限的修改 本文主要讲解Linux中的文件默认创建权限相关的内容 xff0c 涉及到的内容有 xff1a 文件默认创建权限 文件默认创建权限掩码 文件访问权限的修改 文件访问者共三类
  • ucOS系统移植(hal库)

    学习嵌入式实时操作系统 xff08 RTOS xff09 以uc OS III为例 xff0c 将其移植到stm32F103上 xff0c 构建至少3个任务 xff08 task xff09 其中两个task分别以1s和3s周期对LED等进
  • Jmeter性能测试(16)--配置元件之计数器

    先说说利用jmeter生成数据的几种方法 xff1a 1 CSV Data Set Config 这个元件被用来在参数化生成数据时使用 xff0c 简单高效 xff0c 容易生成有序数 xff1b 只需要新建excel xff0c 然后通过
  • Python3 SMTP发送邮件

    SMTP xff08 Simple Mail Transfer Protocol xff09 即简单邮件传输协议 它是一组用于由源地址到目的地址传送邮件的规则 xff0c 由它来控制信件的中转方式 python的smtplib提供了一种很方
  • Tomcat方式启动CAS(附:java环境的切换)

    目录 一 安装java 1 8 注意 二 安装Tomcat 三 安装CAS 一 安装java 1 8 Java JDK在linux系统有两个版本 xff0c 一个开源版本Openjdk xff0c 还有一个oracle官方版本jdk xff
  • STM32—基于ZE08-CH2O模块检测甲醛含量精解

    ZE08 CH2O模块概述 管脚定义 xff1a ZE08 CH2O模块的数据及其使用方法 xff1a 这是我经常用的方法 xff1a 使用串口来接收数据 然后这个模块分为两个模式 xff1a 1 xff0c 主动上传模式 xff0c 2
  • 上位机 PC 和下位机 STM32 串口之间串口通讯的连接图如图 2 所示。USART1_TX 引脚为 PA9,USART1_RX 引脚为PA10 。编程实现如下功能:

    上位机 PC 和下位机 STM32 串口之间串口通讯的连接图如图 2 所示 USART1 TX 引脚为 PA 9 xff0c USART 1 RX 引脚为 PA10 编程实现如下功能 xff1a 当 上位机向下位机发送 1 时 xff0c
  • List集合

    List list集合在java util下使用时需要导包 List集合特点 xff1a 有序 xff1a 存和取的元素顺序一致有索引 xff1a 可以通过索引操作元素可重复 存储的元素可以重复 61 61 List特有 61 61 方法
  • docker服务更新脚本

    一 安装docker docker version systemctl status docker 1 cd home qcpublish qctool dockerInstall 2 yum localinstall y rpm 3 sy
  • 蓝桥杯嵌入式组环境配置(keil mdk+sdk+STM32cubemx)

    1 keil mdk下载 官网也可以下载 地址 MDK ARM Version 5 38a Evaluation Software Request keil com 没梯子速度太慢了 我已经把安装包放在了云盘里链接 xff1a 链接 xff
  • UDP通信代码

    1 客户端代码 创建一个套接字 设置服务器地址 使用sendto向服务器端或接收端发送数据 使用recv接受数据 include lt sys un h gt include lt sys types h gt include lt sys
  • 手把手教CMake编译Qt5工程

    一 新建CMakeLists txt 可以在工程目录下新建一个名为CMakeLists txt文件 xff0c 亦或是 xff0c 在Qtcreator中 xff0c 右键项目 xff0c 添加新文件 xff0c 选择General中的Em