makefile 基础笔记

makefile 文件

makefile文件*********************************/
/*******************************************************
makefile文件
Makefile:编译脚本:编写命令集中在一块,用make来执行
脚本是源程序状态
*******************************************************/

/*******************************************************
objs:定义的变量
start.o:相当于start.s、leds.o相当于leds.s
start.o和leds.o是内容,代表两个文件名
*******************************************************/
objs := start.o leds.o

/********************************************************
生成最终机器代码(.bin文件就是机器代码)
arm-linux-ld:链接器(目标程序变链接器)
-T 表示链接
leds.elf 可直接执行,不能直接烧写
********************************************************/
leds.bin : $(objs)
arm-linux-ld -Tleds.lds -N -o leds.elf $^
arm-linux-objcopy -O binary -S leds.elf $@
arm-linux-objdump -D -m arm leds.elf > leds.dis

/********************************************************
对.c文件起作用
把.c程序编译成目标程序
********************************************************/
%.o:%.c
arm-linux-gcc -Wall -marm -c -O2 -o $@ $<

/********************************************************
%.o表示输出;%.s表示输入
% 表示通配符:代表任意字符
.s 表示凡是汇编写的都是.s
arm-linux-gcc 表示汇编器(源程序变目标程序)
-wall 全编译
-marm 宏编译
-c 进行汇编
-02 汇编时进行2级优化
-o 输出的文件是谁
$@ 代表%.o 跟-o相结合
s< 代表%.s 依赖文件
**********************************************************/
%.o:%.S
arm-linux-gcc -Wall -marm -c -O2 -o $@ $<

/**********************************************************
清除命令
在Linux中输入:make clean 可清除
/
clean:
rm -f .dis .bin .elf .o
/
*********************************************************************************************/
/
.lds文件
******************************/
SECTIONS {
. = 0x02023400;
.text : { (.text) }
//只读数据段
.rodata ALIGN(4) : {
(.rodata*)}
//数据段
.data ALIGN(4) : { (.data) }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值