Makefile 规则的使用

Posted 一步一个脚印

tags:

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

1.Makefile格式

//最终目标

all: led.o //依赖

arm-linux-ld -Tled.lds -o led.elf led.o //命令

arm-linux-objcopy -O binary led.elf led.bin //命令

//目标

led.o : led.S//依赖

arm-linux-gcc -g -o led.o -c led.S //命令

.PHONY: clean

//伪目标--无依赖

clean:

rm *.o led.elf led.bin //命令

2.Makefile 变量

使用变量前:
app1 : app1 .o func1 .o func2.o
gcc app1 .o func1 .o func2.o - o app1
app2: app2.o func1 .o func2.o
gcc app2.o func1 .o func2.o - o app2
obj=func1 .o func2.o
app1 : app1 .o $(obj)
gcc app1 .o $(obj) - o app1
app2: app2.o $(obj)
gcc app2.o $(obj) - o app2

 

3.makefile规则

makefile中,用 除了 可以自 己定义变量外, 还可以使用
存在系统已经定义好的默认变量。
v $^ 代表所有的依赖文件
v [email protected] 代表目标
v $< 代表第一个依赖文件
使用前:
led.o : led.S
arm- linux- gcc -g o led.o - c led.S
使用后:
led.o : led.S
arm- linux- gcc -g o [email protected] - c $^

4.%表示任意的名字--通用规则

all:led.bin
led.bin: led.o
    arm-linux-ld -Tled.lds -o led.elf led.o
    arm-linux-objcopy -O binary led.elf led.bin

%.o : %.S
    arm-linux-gcc -g -o [email protected] $< -c

.PHONY: clean
clean:
    rm *.o led.elf led.bin led.dis

5.Makefile回显

Makefile#字符后的内 容被视作注释。
hello: hello.c
@gcc hello. c o hello
@:取消回显 演示)

6.文件名

make命令默认在当 前目 录下寻找名字为
makefile或者Makefile的工程文件, 名字
不为这两者之一时, 可以使用 如下方法指
     make f 文件名

 

以上是关于Makefile 规则的使用的主要内容,如果未能解决你的问题,请参考以下文章

makefile 隐含规则

Makefile隐晦规则

Linux Makefile使用方法

Makefile详解--隐含规则

cmake 使用 *.cpp 规则创建 Makefile

Makefile文件的基本单元 —— 规则