博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Makefile 工程管理
阅读量:4656 次
发布时间:2019-06-09

本文共 984 字,大约阅读时间需要 3 分钟。

Makefile 工程管理

Makefile 规则 --变量

Makefile中,用户除了可以自己定义变量外,还可以使用存在系统已经定义好的默认变量

$^:代表所有的依赖文件

$@:代表目标

$<:代表第一个依赖文件

Makefile使用技巧

--去回显

Makefile 中“#”字符后的内容被视作注释

@:取消回显

 

使用技巧 – 文件名

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

make –f 文件名

 

结构化Makefile文件的编写

顶层Makefile

OBJS: = start.o main.o mem.o dev/dev.o lib/lib.o

CFLAGS: = -fno-builtin –I$(shell pwd)/include

export CFLAGS

 

gboot.bin : gboot.elf

arm-linux-objcopy –O binary gboot.elf gboot.bin

 

boot.elf : $(OBJS)

arm-linux-ld-Tgboot.lds –o gboot.elf $^

 

%.o : %s

arm-linux-gcc –g –c $^

 

lib/lib.o

make –C lib all

 

dev/dev.o

make –C dev all

 

.PHONY:clean

clean:

rm *.o *.elf *.bin

make –C lib clean

make –C dev clean

 

dev文件夹的Makefile

objs:= button.o interrupt.o led.o nandflash.o uart.o

 

all:$(objs)

arm-linux-ld –r –o dev.o $^

%.o : %.c

arm-linux-gcc ${CFLAGS} –C $^

%.o:%.S

arm-linux-gcc ${CFLAGS} –C $^

clean:

rm –f *.o

 

lib文件夹中的Makefiledev文件夹中的Makefile基本一样,就是objs后面的不一样

 

转载于:https://www.cnblogs.com/love-linux/p/5243757.html

你可能感兴趣的文章
程序员不得不知的座右铭(世界篇)
查看>>
表格-鼠标经过单元格变色(暂不支持IE6)
查看>>
【每日一学】pandas_透视表函数&交叉表函数
查看>>
8.指向结构体数组的指针
查看>>
理解Javascript的Event Loop
查看>>
实时读取日志文件
查看>>
php单页面的点击次数
查看>>
C# Datetime 赋空
查看>>
python 基础 ---- 文件读写
查看>>
python操作mongodb
查看>>
Spring----工厂注入和bean的生命周期
查看>>
随机点名器
查看>>
React Native入门 认识Flexbox布局
查看>>
LINUX平台可以用GDB进行反汇编和调试。
查看>>
kvm 虚拟化的使用
查看>>
一个删除磁盘文件的恶意软件分析
查看>>
react组件里阻事件冒泡
查看>>
Maven中的dependencyManagement 意义
查看>>
Navicat连接oracle,出现Only compatible with oci version 8.1 and&nb (转)
查看>>
Target runtime com.genuitec.runtime.generic.jee60 is not defined
查看>>