简单的小型C++项目怎么用CMAKE进行管理

news/2024/12/29 13:10:10/

项目目录:

在这里插入图片描述
在这里插入图片描述
根目录下共有两个文件夹,分别为include、src,有两个文件,分别为CMakeLists.txt和main.cpp

main函数

在这里插入图片描述
可以看出,include了func.h,且func.h的声明在include文件夹下,定义在src文件夹下的func.cpp中

src文件夹下的CMakeLists.txt

在这里插入图片描述
add_library表示创建了一个静态库,名字是func,用的是func.cpp这个文件
target_include_directories表示让../include文件夹成为func库的头文件的默认搜索的文件夹,且PUBLIC表示让这个目录添加到func目标的接口中,这样任何使用func目标的其他目标都可以访问这个目录,这对于构建复杂的项目时非常有用。

具体到这个例子来说,就是在根目录下的CMakeLists.txt在build的时候,能够访问这个目录

根目录下的CMakeLists.txt

在这里插入图片描述

add_subdirectory(src) 的作用是向 CMake 告知该项目的源代码位于名为 src 的子目录中。当执行 cmake 命令时,CMake 会检查项目根目录下的 CMakeLists.txt 文件,并执行其中的指令。如果其中包含了 add_subdirectory 指令,那么 CMake 会在指定的目录下寻找另一个 CMakeLists.txt 文件,并执行其中的指令。通过这种方式,我们可以将一个大型项目拆分成多个子目录,并为每个子目录单独编写 CMakeLists.txt 文件,从而更加灵活和方便地管理项目。

target_link_libraries(untitled33 func) 是 CMake 中用于将目标库链接到可执行文件的指令。

在本例中,untitled33 是一个可执行文件的名称,func 是一个目标库的名称。使用 target_link_libraries 指令,我们告知 CMake 将目标库 func 链接到可执行文件 untitled33 中。这样,当我们执行 untitled33 可执行文件时,操作系统会自动加载并运行 func 目标库中的函数或代码,从而实现所需的功能。


http://www.ppmy.cn/news/48511.html

相关文章

MathType7最新版本下载安装与使用,注册表文件分享,添加为Word公式插件

wx供重浩:创享日记 对话框发送:mathtype 免费获取MathType7安装包注册表文件 MathType是强大的数学公式编辑器,与常见的文字处理软件和演示程序配合使用,能够在各种文档中加入复杂的数学公式和符号,可用在编辑数学试卷…

TCP协议三次握手过程分析

TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结…

图片存储方案-七牛云存储

1.引语 在实际开发中,我们会有很多处理不同功能的服务器。例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器 分服务器处理的目的是让服务器各司其职…

综合能源系统中基于电转气和碳捕集系统的热电联产建模与优化研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

总结826

学习目标: 4月(复习完高数18讲内容,背诵21篇短文,熟词僻义300词基础词) 学习内容: 高等数学:复习12讲二元积分,第12讲习题,做了17道题 英语:早上背单词&am…

CSS快速入门-选择器和优先级

文章目录 CSS简介选择器CSS样式优先级 CSS简介 CSS是一种用于样式化网页的语言,全称为“层叠样式表”(Cascading Style Sheets)。 它可以控制网页中元素的外观和布局,例如颜色、字体、大小、边距、对齐等,让网页变得…

MySQL架构设计其实很简单

一、概述 我们很多互联网项目首选的数据库就是MySql5.7,因为免费,支持数据库主从复制,读写分离,且语法简单,容易上手,虽然对sql的函数、触发器、存储过程有一定的了解,也能说出一些优化sql语句…

数据库基础篇 《8. 聚合函数》

目录 1. 聚合函数介绍 1.1 AVG和SUM函数 1.2 MIN和MAX函数 1.3 COUNT函数 2. GROUP BY 2.1 基本使用 2.2 使用多个列分组 2.3 GROUP BY中使用WITH ROLLUP 3. HAVING 3.1 基本使用 3.2 WHERE和HAVING的对比 4. SELECT的执行过程 4.1 查询的结构 4.2 SELECT执行顺…