四个规则入门Makefile,从入门到高薪

Posted 紫荆鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四个规则入门Makefile,从入门到高薪相关的知识,希望对你有一定的参考价值。

Makefile

前言

  • 📄本文内容Makefile 教程
  • 📇 所属专栏:🔙C/C++
  • 👤 作者主页紫荆鱼
  • 📆 创作时间:2022-1-9
  • 📟 运行环境:CentOS 8 | gcc 8.5.0

1.编译并运行一个程序

  1. Windows:点击build and run按钮自动编译运行。由于自动挡汽车一样,一切都是自动化的。
  2. Linux:通过GCC编译器编译。犹如开手动挡的汽车一样。
    如上图程序,我们通过GCC编译指令,如下,就可以编译运行该程序。
//通过该指令得到可执行文件add
gcc -o add add.c

//运行该程序
./add

2.编译过程简介

编译过程:

  1. 第一步:预编译
    指令:gcc -E add.c -o add.i
  2. 第二步:汇编
    指令:gcc -S add.i -o add.s
  3. 第三步:编译
    指令:gcc -c add.s -o add.o
  4. 第四步:链接
    指令:gcc add.o -o add

3.📑规则一:显示规则

写一个简单地Makefile

语法:

目标文件:依赖文件
[ Tab ] 指令

例子: 以上述编译过程为例

add:add.o
	gcc add.o -o add
add.o:add.s
	gcc -c add.s -o add.o
add.s:add.i
	gcc -S add.i -o add.s
add.i:add.c
	gcc -E add.c -oadd.i


在Makefile文件中我们也已添加一些非编译的指令,他的目的只是“do something” ,不参加编译过程。我们称这段指令为伪目标用.PHONY:指代,例如:删除编译产生的文件

.PHONY:
clear:
	rm -rf add.i add.s add.o add

4.📑规则二:变量替换

例子2:
add.h

add.c

main.c

利用显示规则编写Makefile如下:

app:main.o add.o
	gcc -o app main.o add.o
main.o:main.c add.h
	gcc -c main.c
add.o:add.c add.h
	gcc -c add.c

变量替换语法:

= (替换)
+= (追加)
:= (恒等于)
$(使用)

改写上述Makefile:

TAR = app
OBJ = main.o add.o
CC = gcc

$(TAR):$(OBJ)
	$(CC) -o $(TAR) $(OBJ)
main.o:main.c add.h
	$(CC) -c main.c
add.o:add.c add.h
	$(CC) -c add.c

5.📑规则三:隐含规则

语法:

%.x :任意的.x文件,.x为某文件后缀名
*.x : 所有的.x文件,x为某文件后缀名

TAR = app
OBJ = main.o add.o
CC = gcc

$(TAR):$(OBJ)
	$(CC) -o $(TAR) $(OBJ)
%o:%.c %.h
	$(CC) -c %.c

6.📑规则四:通配符规则

语法:

$@ : 所有的目标文件
$^:所有的依赖文件
$< : 所有的依赖文件的第一个

TAR = app
OBJ = main.o add.o
CC = gcc

$(TAR):$(OBJ)
	$(CC) $^ -o $@
%o:%.c %.h
	$(CC) -c $^ -o $@

感谢您的阅读,如有帮助送小编一个三连,十分感谢

以上是关于四个规则入门Makefile,从入门到高薪的主要内容,如果未能解决你的问题,请参考以下文章

Makefile入门: 用最美味的例子

Web前端开发从入门级到专家级视频教程,高薪必备。

Makefile入门教程

LinuxMakefile工具的使用入门

LinuxMakefile工具的使用入门

高薪设计师必修课 AE移动UI动效设计从入门到实战