makefile优化

根据《跟我写makefile》写出了下面的makefile文件:

object = main.o file1.o file2.o file3.o

CC = arm-linux-gcc

main: $(object)

         $(CC)-o main $(object) -lpthread –Wall

main.o: main.c main.h file1.h file2.h file3.h

         $(CC)-c main.c

file1.o:file1.c file1.h

         $(CC)-c file1.c

file2.o: file2.c file2.h file1.h

         $(CC)-c file2.c

file3.o: file3.c file3.h

         $(CC)-c file3.c

.PHONY : clean

clean:

         -rmmain $(object)

优化后的makefile:

#产生一个所有以 '.c' 结尾的文件的列表

SOURCES = $(wildcard *.c)  

#匹配替换,有三个参数。第一个是一个需要匹配的式样,第二个表示用什么来替换它,第

#三个是一个需要被处理的由空格分隔的列表, 此处就是表示把文件列表SOURCES中所有

#的.c字符变成.o,形成一个新的文件列表,然后存入OBJS变量中。

OBJS = $(patsubst %.c, %.o, $(SOURCES))

CC = arm-linux-gcc

CFLAGS = -lpthread -Wall

TARGET = ./main

#把所有的.c文件编译成.o文件。 $<:扩展成依赖列表中的第一个依赖文件 

#$@ :扩展成当前规则的目的文件名

%.o:%.c

         $(CC)-c $< -o $@

$(TARGET) : $(OBJS)

         $(CC)  -o $(TARGET) $(OBJS) $(CFLAGS)

.PHONY : clean

clean:

         -rmmain $(OBJS)

优化过程参考了转载的文档《makefile例子》:http://blog.csdn.net/autowanglei/article/details/11079625


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值