Document

Makefile语法规则

Makefile基础语法规则

Makefile优点

由于在大型工程中,一个完整的c语言项目往往需要很多的c\h文件构成,手动输入gcc xxxxx来编译项目是一个无聊的重复性工作,make的作用就出现了,通过写好的makefile文件,make后会自动的编译修改的文件,而不会整体以编译.

规则格式

目标:依赖文件集合(.o文件)
命令1(生成.o文件)
命令2
....
....

示例

img

以下

(最终)目标是生成main这个可执行文件:他的依赖是右边三个.o文件 不满足就先执行下面的目标
执行命令编译.o文件为可执行文件
目标是生成.o文件:依赖是.c文件
执行命令编译.c文件为.o文件

变量(字符串)

#1 $(xxx) 表示引用变量
object = main.o input.o calcu.o
name = main
$(name):$(objects)
gcc -o main $(object)

常用命令

clean:
rm *.o
rm $(name)
print:
@echo xxxxx: $(name)
几个等号:
:= 不取最后一次的值
?= 前面没被赋值 则赋值 否则不变
+= 变量追加

% 模式

#通配符
%.o:%.c
#自动化变量
$@ 目标集合
$% 目标是函数库的时候表示成员名 否则为空
$< 依赖文件的第一个文件 若%定义 则表示符合的集合
$? 所有比目标新的依赖文件的集合,使用空格分开
$^ 素有依赖文件的集合 并去重
$+ 同上 但不去重
$* %及之前的部分

伪目标

防止因文件名冲突导致的问题
.PHONY:xxx
xxx:
xxxxxx
posted @   qdyaodao  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
Document
点击右上角即可分享
微信分享提示