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 @ 2023-12-22 11:18  qdyaodao  阅读(33)  评论(0)    收藏  举报
Document