Cmake qt_add_library

目录

基本用法

参数说明

示例

创建一个新的Qt项目

创建CMakeLists.txt

​​​​​创建库的源文件

创建主程序文件

构建项目


在Qt中,qt_add_library 是一个用于在CMake构建系统中添加库的命令。这个命令通常用于创建一个新的Qt库,并将其添加到CMake项目中。以下是如何使用 qt_add_library 的一些示例和详细步骤:

基本用法

qt_add_library(<library_name> [STATIC | SHARED | MODULE][EXCLUDE_FROM_ALL]source1 [source2 ...]
)

参数说明

  • <library_name>: 库的名称。
  • [STATIC | SHARED | MODULE]: 指定库的类型,默认为 STATIC,表示静态库。SHARED 表示动态库,MODULE 表示模块库。
  • [EXCLUDE_FROM_ALL]: 如果设置了这个选项,库不会被默认构建。
  • source1 [source2 ...]: 库的源文件列表。

示例

以下是一个简单的示例,展示如何在Qt项目中使用 qt_add_library

创建一个新的Qt项目

首先,确保你已经安装了Qt和CMake。然后,创建一个新的CMake项目目录

mkdir MyQtProject
cd MyQtProject

创建CMakeLists.txt

在项目目录中创建一个 CMakeLists.txt 文件,并添加以下内容:

cmake_minimum_required(VERSION 3.14)
project(MyQtProject LANGUAGES CXX)# 查找Qt包
find_package(Qt6 REQUIRED COMPONENTS Core Gui)# 添加库
qt_add_library(MyLibrary STATICmylibrary.cppmylibrary.h
)# 链接Qt库
target_link_libraries(MyLibrary PRIVATE Qt6::Core Qt6::Gui)# 添加可执行文件
add_executable(MyApp main.cpp)# 链接库和Qt库
target_link_libraries(MyApp PRIVATE MyLibrary Qt6::Core Qt6::Gui)

​​​​​创建库的源文件

在项目目录中创建库的源文件 mylibrary.h 和 mylibrary.cpp

// mylibrary.h
#ifndef MYLIBRARY_H
#define MYLIBRARY_H#include <QObject>class MyLibrary : public QObject
{Q_OBJECTpublic:MyLibrary();
};#endif // MYLIBRARY_H
// mylibrary.cpp
#include "mylibrary.h"MyLibrary::MyLibrary()
{
}

创建主程序文件

创建 main.cpp 文件

// main.cpp
#include <QCoreApplication>
#include "mylibrary.h"int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);MyLibrary lib;return a.exec();
}

构建项目

mkdir build
cd build
cmake ..
cmake --build .

这样,你就创建了一个包含自定义库的Qt项目,并成功构建了它。希望这些步骤能够帮助你在Qt项目中使用 qt_add_library。如果你有任何问题或需要进一步的帮助,请随时告诉我!

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

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

相关文章

Feign远程调用,请求头丢失情况

现象 解决方案 import feign.RequestInterceptor; import feign.RequestTemplate; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.context.request.RequestContextHolde…

编译开源车载Linux操作系统AGL

随着汽车行业的智能化和互联化趋势日益明显&#xff0c;车载系统作为汽车的重要组成部分&#xff0c;其性能和功能也受到了越来越多的关注。Linux作为一款开源的操作系统&#xff0c;具有稳定性高、安全性强、可定制性好等优点&#xff0c;因此成为了车载系统领域的热门选择。 …

我应该怎么办?(关于专升本篇!)

kimi&#xff0c;我需要你的帮助&#xff0c;我现在在湖北工业职业技术学院&#xff0c;我2025年将要开始进行专升本&#xff0c;预计在明年4月26日进行专升本&#xff0c;但是我现在很迷茫&#xff0c;自己感觉自己很懒惰&#xff0c;自己每天都过得很迷糊&#xff01; 面对专…

SSM+汽车停车位共享APP-计算机毕业设计源码041534

摘 要 随着社会经济的快速发展,我国机动车保有量大幅增加,城市交通问题日益严重。为缓解用户停车难问题,本文设计并实现了APP停车位共享系统.该系统通过错峰停车达到车位利用率最大化.基于现状分析,本文结合实际停车问题,从系统应用流程,系统软硬件设计和系统实现三方面进行详细…

MUNIK解读ISO26262--什么是系统安全分析

功能安全之系统阶段-系统安全分析 安全分析在ISO26262标准中横跨了多个阶段例如&#xff1a;概念阶段、系统架构阶段、硬件详设阶段和软件详设阶段&#xff0c;其中part5中的安全分析工具FMEDA是标准中唯一一个和ASIL等级挂钩的&#xff0c;在Part5中也用了很大篇幅在介绍该安…

为什么英智智能宝能让律师工作事半功倍

大语言模型能够极大提高人们的知识理解能力和知识服务能力&#xff0c;法律服务是典型的知识服务领域&#xff0c;据悉律师有38%的任务都是重复性工作&#xff0c;这些任务有潜力被大模型替代。 但在法律行业中的高度专业且复杂的问题时&#xff0c;通用型大模型的回答虽能提供…

CentOS 离线安装部署 MySQL 8详细教程

1、简介 MySQL是一个流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它基于SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;进行操作。MySQL最初由瑞典的MySQL AB公司开发&#xff0c;后来被Sun Microsystems公司…

电子元器件基础知识总结

1.0 电阻 电阻的定义&#xff1a;导体对电流的阻碍作用称之为电阻【每一种导体都有内阻的存在】 闭合的电路中电子的移动输出有多快&#xff1f;电子在导体中的移动速度是很慢的 【铜线中电流的移动速度】 电子受到原子核的束缚&#xff0c;移动的速度很慢&#xff0c;在电压足…

4面体空间5点结构种类与占比

在30个点的4面体中取5个点&#xff0c;有30*29*28*27*26/(5*4*3*2)142506种取法&#xff0c; 这里要求5个点必须是直链或支链。共有496个组合符合要求&#xff0c;按平移对称性可分成181个不同的结构 结构 数量 结构 数量 结构 数量 结构 数量 结构 数量 结构 数量 …

Harbor:打造docker私有镜像库

part 1. Harbor概览 harbor&#xff1a;我们的使命是成为 Kubernetes 值得信赖的云原生存储库 为什么要使用Harbor? Harbor是VMware公司开源的企业级容器镜像仓库管理平台,它提供了比基本Docker Registry更丰富的功能&#xff0c;特别适合企业环境使用。提供了镜像存储、签名…

【TS】TypeScript 联合类型详解:解锁更灵活的类型系统

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript 联合类型详解&#xff1a;解锁更灵活的类型系统一、联合类型的定义二…

【深海王国】小学生都能玩的语音模块?ASRPRO打造你的第一个智能语音助手(6)

Hi~ (o^^o)♪, 各位深海王国的同志们&#xff0c;早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω) 今天大都督继续为大家带来系列——小学生都能玩的语音模块&#xff0c;帮你一周内快速学会语音模块的使用方式&#xff0c;打造一个可用于智能家居、物联网领域的语音助…

基于SpringBoot的就业信息管理系统

你好&#xff0c;我是计算机学姐码农小野&#xff01;如果你对就业信息管理系统感兴趣或有相关需求&#xff0c;欢迎私信联系我。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; SpringBootMySql 工具&#xff1a; MyEclipse、Tomcat 系统展示…

电脑游戏录屏,3款实用软件推荐给你

在电竞游戏热潮席卷全球的今天&#xff0c;电脑游戏录屏早已不再是简单的画面捕捉&#xff0c;它成为了记录电竞风采、打造专属游戏记忆的重要手段。通过游戏录屏&#xff0c;我们可以定格游戏中的精彩瞬间&#xff0c;重温那些令人热血沸腾的电竞时刻。那么&#xff0c;在进行…

Prometheus + Grafana 监控系统搭建使用指南-mysqld_exporter 安装与配置

使用mysqld_exporter 实现Prometheus 监控Mysql 系列文章目录 Prometheus 的安装部署Grafana的安装部署Linux服务器接入Prometheus监控-Node Exporter 安装指南Prometheus 接入SpringBoot微服务监控Mysql 接入 Prometheus RocketMQ 接入Prometheus 监控ElasticSearch 接入 Pr…

Node.js实现一个文章生成器

前言 本文将从零开始&#xff0c;讲解如何使用Node.js来实现一个文章生成器 node里面有很多优秀的模块&#xff0c;现在我们就借助node的fs模块来操控文本&#xff0c;来实现我们想要的效果 效果展示 体验 fs 首先我们先创建一个json文件 里面放一些内容 接下来我们书写代码…

抖音本地生活服务商入驻要求中暗含哪些信息?入局要点都在里面了!

随着抖音外卖的正式开放&#xff0c;许多创业者对于做抖音本地生活服务商的意向愈发强烈&#xff0c;抖音本地生活服务商入驻要求及相关话题更是在多个创业者群内被翻来覆去地讨论&#xff0c;且多次刷屏。 而就抖音目前在本地生活市场的布局来看&#xff0c;其主要的重心还是…

Renderless 思想正在影响前端开发

本文由前端小伙伴方长_beezen 原创。欢迎大家踊跃投稿。 原文链接&#xff1a;https://juejin.cn/post/7385752495535472655 前言 截止到 2024 年&#xff0c;跨端应用开发所需要考虑的兼容性&#xff0c;已经涵盖了框架、平台和设备类型等多个方面&#xff0c;例如&#xff1…

开发在线教育项目-在线课程视频网站开发

用了哪些技术 后端技术 springboot3 security权限框架&#xff08;后台&#xff09;mybatisPlus框架jwt生成tokeneasyexcel导入导出递归查询拦截器校验tokenredis的zset做排行榜功能redis的list做最新课程的功能redis做为缓存技术redis作为计数器&#xff0c;实时记录浏览量&…

搞定Loki+Promtail轻量级日志系统

Promtail 是 Loki 的日志收集客户端&#xff0c;它的主要功能是从各种来源收集日志并将其发送到 Loki 进行存储和查询。Promtail 的设计使其能够高效地收集和处理日志数据。 promtail-config.yaml&#xff08;配置&#xff09;: Promtail 读取配置文件&#xff08;例如 promta…