gpt4 book ai didi

c - 没有制定目标的规则

转载 作者:太空宇宙 更新时间:2023-11-04 00:29:33 24 4
gpt4 key购买 nike

我正在尝试按照本教程进行操作: http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/

当我在最后一个 makefile (#5) 时,“make”无法继续,因为(错误提示)No rule to make target “obj/hellomake.o”,“hellomake”需要。这段代码尝试编译源文件并将 libs、srcs、objs 放入各自的文件夹中。

IDIR =../include
CC=gcc
CFLAGS=-I$(IDIR)

ODIR=obj
LDIR =../lib

LIBS=-lm

_DEPS = hellomake.h
DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))

_OBJ = hellomake.o hellofunc.o
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))


$(ODIR)/%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)

hellomake: $(OBJ)
gcc -o $@ $^ $(CFLAGS) $(LIBS)

.PHONY: clean

clean:
rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~

我已经盯着它看了一个小时了,它不是一段复杂的代码,但我看不出问题所在。我怀疑问题发生在这里:

$(ODIR)/%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)

hellomake: $(OBJ)
gcc -o $@ $^ $(CFLAGS) $(LIBS)

我只是觉得它没有任何问题。请帮忙。

最佳答案

他们的剧本很好!只需这样做:

1°) 创建目录“include”和“src”

mkdir include; mkdir src

2°) 在“src”中创建一个“obj”文件夹

mkdir obj

3°) 你的目录树应该是这样的:

$:~/parentDir$ tree.├── include│   └── hellomake.h└── src    ├── hellofunc.c    ├── hellomake    ├── hellomake.c    ├── Makefile    └── obj        ├── hellofunc.o        └── hellomake.o

4°) 现在只需在 src 目录中使用 make 命令。 :D

关于c - 没有制定目标的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30443645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com