makefile学习

CC = gcc
INC_DIR := include
SRC_DIR := src
VPATH := src:include
CFLAGS = -Wall -Iinclude
#get .o and .c files
SRCS := $(wildcard $(SRC_DIR)/*.c)
OBJS := ( p a t s u b s t (patsubst %.c,%.o, (patsubst(SRCS))
#where common header files

.PHONY : all
all : $(OBJS)
$(CC) -o $@ $^
%.o:%c
$(CC) -o $@ -c $< $(CFLAGS)

%.d: %.c
@set -e; rm -f $@;
$(CC) -MM $(CFLAGS) $< > @ . @. @.$KaTeX parse error: Expected 'EOF', got '\ ' at position 3: ; \̲ ̲ sed 's,\($*\)\…KaTeX parse error: Can't use function '$' in math mode at position 4: > $̲@; \ rm -f $@.$$

-include $(OBJS:.o=.d)
clean:
rm -r $(OBJS) *.o *.d .d.

进入公司之后的小task:
师傅给了一个没有makefile的源代码文件,要求手动写出一个makefile来实现依赖关系的自动编译
难点在与
1、头文件数目繁杂,如何快速的讲.c文件和.h文件一一对应起来
2、其中某一个.h文件引用了另外的一个.h文件内容,而且路径写的并不是相对路径,而是类似于lib库的写法 也就是 include “aaa.h" ,也就是需要在编译过程中指定对应的公共头文件的目录 第二个问题的解决需要在 CFLAGS中直接给出include的文件夹的名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值