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

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


 
 
  1. CC=gcc
  2. CFLAGS_WARN = -Wall
  3. DEFINE =
  4. INCLUDE = -I.
  5. SOURCES = $(wildcard *.c)
  6. OBJS = $(patsubst %.c,%.o,$(SOURCES))
  7. TARGET = XXXX
  8. All:$(OBJS)
  9. $(CC) -o $(TARGET) $(OBJS)
  10. %.o:%.c
  11. $(CC) -c $(CFLAGS_WARN) $(DEFINE) $(INCLUDE) $ < -o $@
  12. clean:
  13. rm -f $( OBJS)
  14. rm -f $( TARGET)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值