繁体   English   中英

如何制作包含我的标题的 Makefile?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM