Makefile学习笔记
文章平均质量分 64
Makefile学习笔记
_Jxyz
这个作者很懒,什么都没留下…
展开
-
Makefile中的 =号详解
1. “=”“=”是最普通的等号,然而在Makefile中确实最容易搞错的赋值等号,使用”=”进行赋值,变量的值是整个makefile中最后被指定的值。不太容易理解,这种方式叫做“递归展开”,直到该变量被使用时等号右边的内容才会被展开,其实叫做“迟滞展开”更合适。神奇的是,这种展开方式可以不按顺序定义变量举个例子如下:VIR_A = AVIR_B = $(VIR_A) BVIR_A = AA经过上面的赋值后,最后VIR_B的值是AA B,而不是A B。在make时,会把整个makefile原创 2020-12-20 23:19:52 · 1095 阅读 · 0 评论 -
makefile 学习笔记
直接对变量赋值,:= : 右侧是否有变量,如有变量且变量的定义在后边,则忽略该右侧变量,其他情况同=号+= : 追加赋值?= : 如果符号左侧的变量已经定义过则跳过该句。原创 2024-09-17 12:43:55 · 805 阅读 · 0 评论 -
make工具以及makefile
1、 make 工具make工具仅编译被修改的文件2、makefile 文件2.2 、makefile 语法2.2.1 、makefe 规则格式目标...:依赖文件集合 命令1 命令2 ...命令列表中的每条命令必须以TAB键开始,不能使用空格命令列表中的每条命令必须以TAB键开始,不能使用空格命令列表中的每条命令必须以TAB键开始,不能使用空格如果没有指定终极目标,那么第一个规则的目标就是终极目标make命令会为Makefile中的每个以TAB开始的命令创建一个Shell进程去原创 2020-11-29 17:50:23 · 492 阅读 · 0 评论 -
Makefile 学习
1.1 通配符% 代表一个或多个字符,%.o 就是代表所有以.o为结尾的文件makefile 自动规则1.2 makefile 定义和使用变量直接定义使用,引用变量$var1.3 伪目标(.PHONY)(1)伪目标是这个目标不是得到一个文件,执行这个目标不是为了得到某个某个文件或东西,而是单纯为了执行这个目标下面的命令:(2)为目标一般都没有依赖,因为不加依赖就是无条件执行(3)伪目标可以直接写,不影响使用,但有时候为了能看清可以前在面添加(.PHONY)1.4 Makefile 中引用原创 2020-07-22 23:20:49 · 146 阅读 · 0 评论 -
Makefile中的函数笔记
5、filter$(filter <pattern…>,)名称:过滤函数——filter。功能:以模式过滤字符串中的单词,保留符合模式的单词。可以有多个模式。返回:返回符合模式的字串。示例:sources := foo.c bar.c baz.s ugh.hfoo: $(sources)cc (filter(filter %.c %.s,(filter(sources)) -o foo(filter(filter %.c %.s,(filter(sources))返回的值是“原创 2024-09-17 12:41:18 · 911 阅读 · 0 评论 -
Makefile 学习笔记(一)gcc编译过程
环境准备.linux 系统(虚拟机)VS codelinux 编译过程预处理: 把.h .c 展开形成一个文件.宏定义直接替换 头文件 库文件 .i汇编: .i 生成一个汇编代码文件 .S编译: .S 生成一个 .o .obj 链接: .o 链接 .exe .elfgcc c语言g++ c++语言 gcc的使用#include "stdio.h"#define P "hello gcc"#define PRT printfint main(){ PRT(P);原创 2024-09-17 12:39:19 · 294 阅读 · 0 评论