使用CMake搭建简单的Qt程序

news2024/11/27 18:44:56

目录结构

代码

CMakeLists.txt:

cmake_minimum_required(VERSION 3.15)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

# set the project name
project(xxx)

# 设置Qt的路径
# 例如 E:/Qt/Qt/aaa/msvc2019_64
# aaa 为Qt的版本号
set(QT_PATH "E:/Qt/Qt/aaa/msvc2019_64")
set(CMAKE_PREFIX_PATH ${QT_PATH}/lib/cmake)

# 添加模块
find_package(Qt5 COMPONENTS Widgets Core Sql REQUIRED )
# include_directories(${QT_PATH}/include)
include_directories(${PROJECT_SOURCE_DIR}/inc)

file(GLOB_RECURSE user_headers inc/*.h)
file(GLOB_RECURSE user_cpps src/*.cpp)
set(user 
${user_headers}
${user_cpps})

add_executable(${PROJECT_NAME} WIN32
${user}
)

# link_libraries(${QT_PATH}/lib)

target_include_directories(${PROJECT_NAME}
PUBLIC
${PROJECT_SOURCE_DIR}/inc)

# 添加模块
target_link_libraries(${PROJECT_NAME} 
 Qt5::Widgets
 Qt5::Core
 Qt5::Sql)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1562801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何生成一个指定长度的空数组?

简便写法:使用constructor构造函数进行创建,第一个空数组 [ ] 表示创建一个空数组,然后调用 constructor 属性并传入参数指定数组长度。 [].constructor(17)可用于遍历,例如使用ngFor进行单纯的遍历,参数为遍历次数。

常见的设备通讯协议分析

不同的通信协议根据其设计目的和应用场景,各有其优缺点。在选择通信协议时,需要根据具体的应用需求和场景,权衡各种协议的优缺点,选择最适合的协议。例如,对于实时性要求高的工业控制系统,可能会选择CAN或M…

GWO-CNN-BiLSTM多输入时序预测|灰狼群算法优化的卷积-双向长短期神经网络|Matlab

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&…

【Leetcode每日一题】 动态规划 - 不同路径(难度⭐⭐)(49)

1. 题目解析 题目链接:63. 不同路径 II 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 这个问题就像是在一个迷宫中找路,只不过这个迷宫有些格子是不能走的,也就是那些“障碍物”。…

简单几步轻松实现电脑快速切换IP地址

在数字化时代,网络已经成为我们日常生活和工作中不可或缺的一部分。IP地址作为网络设备的标识符,扮演着至关重要的角色。然而,在某些特定场景下,我们可能需要快速切换IP地址,以满足不同的网络需求或保护个人隐私。虎观…

算法基础--递归

😀前言 递归是一种重要的算法思想,常用于解决问题的分解与求解。在计算机科学中,递归是指一个函数在其定义中调用自身的情况。 🏠个人主页:尘觉主页 文章目录 算法基础--递归递归入门例题递归实现指数型枚举递归实现排…

gulp的基本使用(一)

gulp的基本使用 开始全局安装gulp-cli本地项目初始化gulp插件的安装查看是否安装成功项目根目录创建gulpfile.js文件运行命令测试结果 开始 全局安装gulp-cli 命令 npm install --global gulp-cligulp-cli作用: gulp的命令行工具,它需要全局安装&…

华为交换机维护——管理接口

常见的设备管理方式有SNMP、Web、Telnet以及通过Console口管理等。从技术的角度分析,网络管理可分为带外管理和带内管理。所谓带内管理,是指网络中的管理数据和业务数据在相同的链路中传输。当管理数据的流量较少时,对整个网络的性能影响不明…

前后端开发之——文章分类管理

原文地址:前后端开发之——文章分类管理 - Pleasure的博客 下面是正文内容: 前言 上回书说到 文章管理系统之添加文章分类。就是通过点击“新建文章分类”按钮从而在服务端数据库中增加一个文章分类。 对于文章分类这个对象,增删改查属于配…

Windows提权—数据库提权-mysql提权mssql提权Oracle数据库提权

目录 Windows 提权—数据库提权一、mysql提权1.1 udf提权1.1.2 操作方法一 、MSF自动化--UDF提权--漏洞利用1.1.3 操作方法二、 手工导出sqlmap中的dll1.1.4 操作方法三、 moon.php大马利用 1.2 mof提权1.3 启动项提权1.4 反弹shell 二、MSSQL提权MSSQL提权方法1.使用xp_cmdshe…

项目管理工具的魔力:团队合作的秘诀大揭秘!

我们知道项目的成败往往取决于人。假如一个项目团队组织不善,即使项目经理能力很强也无法力挽狂澜,甚至被团队束缚。创建更好的项目团队可以从多方面下手其中项目管理工具就是重要的一项,如何利用项目管理工具组建更好的项目团队?…

中国主要河流水系数据

在我国,水系等级划分主要依据流域面积、流量和河流长度等因素。根据《中华人民共和国水资源》的相关规定,我国水系等级大致可以分为以下几类: 一级水系:主要是指国内的大型河流,如长江、黄河、珠江等。这些河流的流域…

java入门-分支与循环

分支结构 分支结构是解决程序选取分支走不同的路线,增加了程序开发的灵活性。java的分支主要由if和switch这两种结构实现。 if 语句 if是分支中最常用的语法,它从形式上有三种形态: if 结构 结构 语法 if(表达式){ //代码块 } 程序案例 i…

基于java+SpringBoot+Vue的学生考勤管理系统设计与实现

基于javaSpringBootVue的学生考勤管理系统设计与实现 开发语言: Java 数据库: MySQL技术: SpringBoot MyBatis工具: IDEA/Eclipse、Navicat、Maven 系统展示 前台展示 登录注册:支持学生、教师和管理员登录和注册。 个人中心:用户可以查看和更新个…

C语言-冒泡排序算法

题目描述 设计一个程序,实现冒泡排序算法,并输出{9,8,7,6,5,4,3,2,1,0} 的排序过程。 输出 每个排序过程输出一行,直到排序完成。 样例输出 Expected 9 8 7 6 5 4 3 2 1 0 0 9 8 7 6 5 4 3 2 1 0 1 9 …

C#学习笔记7:C#面向对象编程方法(1)

今日继续我的C#学习笔记 主要用实际代码编程来学习研究C#面向对象的编程方法:直接看代码及注释即可: 目录 1、对类与对象概念的快速认知: 2、类和对象成员访问控制: 3、类的构造函数和析构函数: 4、类的属性&#xff…

GaussDB云数据库极简版安装与使用-新手指南

一、前言 作为一款领先的企业级数据库管理系统,GaussDB 提供了强大的性能、高度可靠性和丰富的功能,是企业构建可靠、高性能的数据库解决方案的理想选择。 本文主要针对高校和个人测试环境,介绍极简版安装和使用过程,更加适合高…

git 修改历史 commit message

目录 1,修改当前的2,修改历史的1,先查看 log2,开始修改 3,其他注意点1,中途不想修改了2,commit ID 会发生变化3,推送远程4,精准定位 1,修改当前的 直接使用下…

Netty核心原理剖析与RPC实践11-15

Netty核心原理剖析与RPC实践11-15 11 另起炉灶:Netty 数据传输载体 ByteBuf 详解 在学习编解码章节的过程中,我们看到 Netty 大量使用了自己实现的 ByteBuf 工具类,ByteBuf 是 Netty 的数据容器,所有网络通信中字节流的传输都是…

哥哥张国荣逝世21年,唐唐继续发文怀念

一代巨星张国荣(哥哥)在21年前的愚人节(2003年4月1日)从香港文华东方酒店一跃而下,终年46岁,当年他的离开令很多歌迷影迷都感到悲痛,当中亦包括了他…… 他就是唐鹤德(唐唐&#xff…