Makefile中一些必须知道的规则

定义一些变量

NAME=led_asm
CROSS_COMPILE = arm-none-linux-gnueabi-

编译

CC = $(CROSS_COMPILE)gcc

链接 将.o文件链接生成.elf文件

LD = $(CROSS_COMPILE)ld

将.elf文件生成.bin

.bin 是纯粹的二进制文件

.elf 包含符号

OBJCOPY = $(CROSS_COMPILE)objcopy

规则

all:
$(CC) -O0 -g -c $(NAME).S -o $(NAME).o
@ # -O0:对代码的优化等级
@ # -g:添加调试信息
@ # -c:只编译不链接
$(LD) -Ttext=0x43c00000 $(NAME).o -o $(NAME).elf
@ # -Ttext=0x43c00000:指定代码的起始位置
$(OBJCOPY) -O binary $(NAME).elf $(NAME).bin
@ # -O binary : 输出二进制文件

clean:
rm -rf *.elf *.bin *.o

install:
@ # 修改为自己的贡献文件夹路径
cp $(NAME).bin /mnt/hgfs/share/

关于命令的变量。

AR

函数库打包程序。默认命令是“ar”。 

AS

汇编语言编译程序。默认命令是“as”。

CC

C语言编译程序。默认命令是“cc”。

CXX

C++语言编译程序。默认命令是“g++”。

CO

从 RCS文件中扩展文件程序。默认命令是“co”。

CPP

C程序的预处理器(输出是标准输出设备)。默认命令是“$(CC) –E”。

FC

Fortran 和 Ratfor 的编译器和预处理程序。默认命令是“f77”。

GET

从SCCS文件中扩展文件的程序。默认命令是“get”。 

LEX

Lex方法分析器程序(针对于C或Ratfor)。默认命令是“lex”。

PC

Pascal语言编译程序。默认命令是“pc”。

YACC

Yacc文法分析器(针对于C程序)。默认命令是“yacc”。

YACCR

Yacc文法分析器(针对于Ratfor程序)。默认命令是“yacc –r”。

MAKEINFO

转换Texinfo源文件(.texi)到Info文件程序。默认命令是“makeinfo”。

TEX

从TeX源文件创建TeX DVI文件的程序。默认命令是“tex”。

TEXI2DVI

从Texinfo源文件创建军TeX DVI 文件的程序。默认命令是“texi2dvi”。

WEAVE

转换Web到TeX的程序。默认命令是“weave”。

CWEAVE

转换C Web 到 TeX的程序。默认命令是“cweave”。

TANGLE

转换Web到Pascal语言的程序。默认命令是“tangle”。

CTANGLE

转换C Web 到 C。默认命令是“ctangle”。

RM

删除文件命令。默认命令是“rm –f”。

猜你喜欢

转载自blog.csdn.net/weixin_48430195/article/details/108681706