先说明下”all:“和”clean:“。这两个语句类似于:if (arg=="all") then.... 和 if (arg=="clean") then...

也就是说,如果你执行make all,all后面的语句就会被执行。

如果make clean,clean后面的语句就会被执行。

另外,all和clean后面的语句应该都是要缩进的。

EXEC = hello // 生成的可执行文件名为hello

OBJS = hello.o // 编译产生的中间文件名为hello.o

CROSS= iwmmxt_le- //设置iwmmxt_Ie-为交叉编译环境

CC = $(CROSS)gcc // 编译器是gcc

STRIP= $(CROSS)strip // 设置优化器(用来删除debug信息)

CFLAGS = -Wall -g -O2 // 设置编译选项

all: clean $(EXEC) // 如果是make all,先掉用下clean后面的指令,再执行自己下面的指令

$(EXEC):$(OBJS) // 创建依赖关系。这里表示hello依赖于hello.o。也就是说,先产生hello.o再产生hello

$(CC) $(CFLAGS) -o $@ $(OBJS) // 编译

$(STRIP) $@ // 删除debug信息

clean: // make clean就会来这里

-rm -f $(EXEC) *.o // 删除产生的中间文件

取消

评论

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐