Makefile及CMake知识点的整理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Makefile及CMake知识点的整理,重点是CMake的整理,对于大型的项目构建比较多。

一、Makefile知识点的整理

1.1 Makefile的三要素

三要素分别为目标 依赖 命令
话不多说,上图比较清晰。
在这里插入图片描述

1.2 Makefile的工作原理

  1. 生成目标的原理。相当于是一个逻辑判断依赖条件是否存在,然后不断递归新的规则的过程。
    在这里插入图片描述
  2. 更新目标的原理。可以理解为根据依赖条件修改的时间戳而执行命令的过程。
    在这里插入图片描述

1.3 .PHONY伪对象

用于在程序所在目录创建一个clean文件,避免本地产生文件的影响。如clean文件

1.4 变量

通过变量能够实现类似对Makefile宏的定义。

1.4.1 自动变量

@ 用于表示一个规则中的 ∗ ∗ 目标 ∗ ∗ 。当我们的一个规则中有多个目标时, @用于表示一个规则中的**目标**。当我们的一个规则中有多个目标时, @用于表示一个规则中的目标。当我们的一个规则中有多个目标时,@所指的是其中任何造成命令被运行的目标。
◼ $^则表示的是规则中的所有依赖。
◼ $<表示的是规则中的第一个依赖。

1.4.2 自动变量——编译

wildcard 是通配符函数,通过它可以得到我们所需的文件。形式:$(wildcard pattern);
patsubst 函数是用来进行字符串替换的,其形式是:
$(patsubst pattern, replacement, text);

二、CMake

1.编译方式

设置CMakeLists.txt的目录位置,通过cmake命令,一般通过创建build目录设置cmake命令,因为在工程目录设置会产生大量中间的工程文件。

2.相关语法总结

cmake_minimum_required:设置cmake最低版本号的要求;
SET:设置变量;
MESSAGE:类似于linux中的echo;
ADD_EXECUTABLE:生成可执行文件;
INSTALL:安装相应文件到系统目录/usr/local;
ADD_SUBDIRECTORY:添加子目录,并且自动扫描子目录下的CMakeLists.txt文件;
ADD_LIBRARY:生成库文件;
TARGET_LINK_LIBRARIES:链接库到执行文件上;
AUX_SOURCE_DIRECTORY:找到目录下所有的源文件;
一些CMakeLists.txt文件的写法,深入的话需要通过阅读大型项目的文件理解。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值