Makefile编程

Makefile文件的写法有很多种,在工程目录当中,每一个文件目录下面都有一个Makefile文件(含有.c的目录),Makefile使得编译程序更加简单

第一种:

hello:hello.c
    gcc hello.c -o hello
其中hello:hello.c  中的hello就是最终要生成的目标文件,hello.c就是生成目标文件所需要的依赖文件,下面是我们经常使用的shell编译命令。这种方法改变程序的名字,那么Makefile改起来就很麻烦,所以就有了第二种

第二种:
TARGET=hello
SRCS=hello.c add.c
CC=gcc
$(TARGET):$(SRCS)
    $(CC) $(SRCS) -O $(TARGET)
定义了一些变量,变量保存的是程序名,这样改起来就方便多了,不用一个个地修改,但是我有很多.c文件的话,这样定义变量也麻烦,那第三种就来了

第三种:
TARGET=hello
SRCS=$(wildcard *.c)
CC=gcc
$(TARGET):$(SRCS)
    $(CC) $(OBJ) -O $(TARGET)
用了通配当前目录下所有的.c文件,这样就不用一个个去改文件名,只要是.c文件就会编译进去。

第四种:
TARGET=hello
SRCS=$(wildcard *.c)
OBJS=$(patsubst %.c,%.o,$(SRCS))
CC=gcc
$(TARGET):$(OBJS)
    $(CC) $(OBJS) -O $(TARGET)
这种和上一种差不多,只不过目标依赖的是由.c生成的.o文件

第五种:
TARGET=hello
SRCS=$(wildcard *.c)
OBJS=$(patsubst %.c,%.o,$(SRCS))
$(TARGET):$(OBJS)
    $(CC) -O $@ $^
%.o:%.c
    $(CC) -O $@ -c $<
clean:
    rm *.o $(TARGET)
这种才是我们常用的一种,其中$@表示目标,$<表示初级依赖,$^表示终极依赖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值