[英]How to make a Makefile that includes my header?
我是 c 编程的新手,我在为它制作 Makefile 时遇到了问题。
我喜欢
CC = gcc
CFLAGS = -fsanitize=address -g -Wall -Wvla
OUTPUT = prac
all: $(OUTPUT)
mymalloc.o: mymalloc.c mymalloc.h
$(CC) $(CFLAGS) -c $@ mymalloc.c
%: %.c
$(CC) $(CFLAGS) -o $@ mymalloc.o $^
我尝试只输入“make”来制作文件
但它一直说
gcc -fsanitize=address -g -Wall -Wvla -o prac mymalloc.o prac.c
clang: error: no such file or directory: 'mymalloc.o'
make: *** [prac] Error 1
每当我试图做到这一点时,我做错了什么吗?
谢谢你。
编辑)
我用这个就对了!
CC = gcc
CFLAGS = -fsanitize=address -g -Wall -Wvla
DEPS = mymalloc.h
OBJS = prac.o mymalloc.o
%.o: %.c $(DEPS)
$(CC) $(CFLAGS) -c -o $@ $<
prac: $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
您需要使可执行文件依赖于mymalloc.o
:
%: %.c mymalloc.o
$(CC) $(CFLAGS) -o $@ mymalloc.o $^
依赖告诉make
它需要执行创建mymalloc.o
的规则。
您制作mymalloc.o
的规则也是错误的。 你需要-o
在$@
之前:
mymalloc.o: mymalloc.c mymalloc.h
$(CC) $(CFLAGS) -c -o $@ mymalloc.c
否则,它会尝试将输出文件用作输入文件之一。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.