Makefile自动编译目录下的所有.C文件

自动编译目录下的所有.C文件的Makefile脚本

CC=gcc

CFLAGS_WARN = -Wall

DEFINE =
INCLUDE = -I.

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

TARGET  = XXXX

All:$(OBJS)
	$(CC) -o $(TARGET) $(OBJS)	

%.o:%.c
	$(CC) -c $(CFLAGS_WARN) $(DEFINE) $(INCLUDE) $< -o $@	
clean:	
	rm -f $(OBJS)
	rm -f $(TARGET)


  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用Makefile编译不同路径下的.c和.h文件。下面是一个示例Makefile: ``` CC=gcc CFLAGS=-I./include SRC=./src OBJ=./obj BIN=./bin $(BIN)/myprogram: $(OBJ)/main.o $(OBJ)/helper.o $(CC) -o $@ $^ $(OBJ)/main.o: $(SRC)/main.c $(SRC)/helper.h $(CC) $(CFLAGS) -c $< -o $@ $(OBJ)/helper.o: $(SRC)/helper.c $(SRC)/helper.h $(CC) $(CFLAGS) -c $< -o $@ .PHONY: clean clean: rm -f $(OBJ)/*.o $(BIN)/myprogram ``` 在这个Makefile中,我们假设我们有一个名为myprogram的程序,它的源代码位于./src目录中,头文件位于./include目录中,目标文件应该被编译到./obj目录中,最终的可执行文件应该被放置在./bin目录下。 我们定义了一些变量,以便在后面的规则中使用。CC变量指定使用的编译器,CFLAGS变量指定编译选项,SRC变量指定源代码目录OBJ变量指定目标文件目录,BIN变量指定可执行文件目录。 在这个Makefile中,我们定义了三个规则:myprogram、main.o、helper.o。myprogram规则指定了可执行文件应该由哪些目标文件组成。main.o和helper.o规则分别指定了如何编译文件和头文件,以及如何生成目标文件。 最后我们还定义了一个clean规则,用于删除生成的目标文件和可执行文件。 使用make命令来编译和链接程序: ``` $ make ``` 这将会自动编译所有的.c和.h文件,并将生成的目标文件和可执行文件存储到相应的目录中。 ``` $ make clean ``` 这将会删除所有生成的目标文件和可执行文件

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值