CC=gcc #GNU C 语言编译器
CFLAGS=-O -Wall -fstrength-reduce -fcombine-regs -fomit-frame-pointer\
-finline-functions -nostdinc -I../include
#C编译程序选项.-Wall显示所有的警告信息;-O优化选项,优化代码长度和执行时间;
#-fstrength-reduce优化循环执行代码,排除重复变量;-fomit-frame-pointer省略保存不必要
#的框架指针;-fcombine-regs合并寄存器,减少寄存器类的使用;-finline-fucntions将所有
#简单短小的函数代码嵌入到调用程序中;-nostdinc -I../include不能使用默认路径中的包含文件
#而使用这里指定目录中的包含文件
AS=gas #GNU 汇编程序
AR=gar #GNU 二进制文件处理程序,用于创建、修改以及从归档文件中抽取文件
LD=gld #GNU链接程序
CPP=gcc -E -nostdinc -I../include #
#C预处理选项.-E只运行C预处理,对所有指定的C程序进行预处理并将处理结果输出到标准输出
#设备或者指定的输出文件中,-nostdinc -I../include同前
#下面编译规则指示make利用下面的语句将所有的.c文件编译成.s汇编程序.该规则的命令指使gcc采
#用CFLAGS所指定的选项对C代码编译后不进行汇编就停止(-S),从而产生与输入的各个C文件对应
#的汇编代码文件.默认情况下所产生的汇编程序文件名是原C文件名去掉.c而加上.s后缀.-o表示输出
#文件的名称.其中$*.s(或$@)是自动目标变量
#$<代表第一个先决条件,这里既是符合条件*.c的文件
#
.c.o:
$(CC) $(CFLAGS) -c -o $*.o $< # 将.c文件生成.o
.s.o:
$(AS) -o $*.o $< #将.s生成.o
.c.s:
$(CC) $(CFLAGS) -S -o $*.s $< #将.c生成.s
OBJS &#
linux011之内存管理的makefile分析
最新推荐文章于 2022-06-17 19:58:30 发布