gpt4 book ai didi

c - 即使定义了 %.o,也没有制作 something.o 的规则

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

我是论坛的新手,所以我希望我做的是对的。

我正在为 C 项目从头编写 Makefile。它在某个时候工作,然后我尝试稍微改进它(包括单独的文件夹),我得到了众所周知的错误“没有规则来制作目标“obj/autresFonctions.o”,需要“CUR””。或类似的,因为它不是英文的,我翻译了。

这看起来很奇怪,因为我期望工作的规则是使用 %.o 并且应该匹配任何内容。因此,我不认为这可能是错字。

这是生成文件:

EXE=prgm
CC=gcc

SRC_DIR=src
OBJ_DIR=obj
INCLUDE_DIR=include

_FICHIERS_H = autresFonctions.h calculPrealable.h constantes.h fonctionsAnnexes.h fonctionBoucles.h lectureFichiers.h main.h
FICHIERS_H = $(patsubst %, $(INCLUDE_DIR)/%, $(_FICHIERS_H))

_OBJ = autresFonctions.o calculPrealable.o fonctionsAnnexes.o fonctionsBoucles.o lectureFichiers.o main.o
OBJ = $(patsubst %, $(OBJ_DIR)/%, $(_OBJ))


FLAGS=-Wall -Wextra



CUR: $(OBJ)
$(CC) -o $(EXE) $^

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(FICHIERS_H)
$(CC) $(FLAGS) -c -o $@ $<

clean:
rm $(OBJ) $(EXE)

我假设其他 .o 是一样的,因为我也尝试在 _OBJ 中切换前两个 .o,并且我在 calculPrealable.o 中遇到了同样的错误

我只是在编译时输入“make”,以便获得主要 objective-c UR。我位于主目录中,其中包含 include/(带 .h)、src/(带 .c)和 obj/(空)。

编辑:我忘了说,但我使用的是通常的 GNU make。

最佳答案

模式规则只有在所有规则都匹配时才匹配。仅仅匹配目标是不够的:make 还必须能够找到(或制作)先决条件模式和规则中列出的所有其他先决条件。

如果一件事不匹配,则规则不匹配。

您可以使用 make -d 来查看 make 正在尝试构建哪些文件,以及哪些文件不存在并导致规则失败。

附言。这一切都是假设您使用的是 GNU make,您没有具体说明。

关于c - 即使定义了 %.o,也没有制作 something.o 的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22840390/

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