C 生成文件错误:没有生成目标的规则
我对编写makefiles还不熟悉,在stackoverflow的同一主题上,我已经讨论了其他几个问题,但我的代码还不能使用 我正在编写makefile,以便在开始时编译单个.C文件C 生成文件错误:没有生成目标的规则,c,makefile,C,Makefile,我对编写makefiles还不熟悉,在stackoverflow的同一主题上,我已经讨论了其他几个问题,但我的代码还不能使用 我正在编写makefile,以便在开始时编译单个.C文件 CORE_DIR = ../.. CODE_DIR = $(CORE_DIR)/code CC=gcc all: example.o example.o: $(CODE_DIR)/example.c $(CODE_DIR)/variable.h $(CC) $(CODE_DIR)/exa
CORE_DIR = ../..
CODE_DIR = $(CORE_DIR)/code
CC=gcc
all: example.o
example.o: $(CODE_DIR)/example.c $(CODE_DIR)/variable.h
$(CC) $(CODE_DIR)/example.c -o output
我正在执行命令make-fstart.mk,并得到错误:没有规则使“start.mk”成为目标
我在这方面哪里做错了
编辑:使用make-d start.mk(调试选项)并更改注释中所述的全部:输出。以下是我无法复制的更多文本。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.c'。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.cc'。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.C'。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.cpp'。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.p'。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.f'。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.F'。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.r'。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.s'。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.S'。
正在使用stemlinux.mk'尝试模式规则。
拒绝不可能的隐式先决条件
linux.mk.mod'。
正在使用stemlinux.mk'尝试模式规则。
正在尝试隐式先决条件
linux.mk.sh'。
正在使用中间文件linux.mk.sh'查找规则。
避免隐式规则递归。
正在使用stem尝试模式规则
linux.mk.sh'。
正在尝试隐式先决条件linux.mk.sh,v'。
正在使用stem尝试模式规则
linux.mk.sh'。
正在尝试隐式先决条件RCS/linux.mk.sh,v'。
正在使用stem尝试模式规则
linux.mk.sh'。
正在尝试隐式先决条件RCS/linux.mk.sh'。
正在使用stem尝试模式规则
linux.mk.sh'。
正在尝试隐式先决条件s.linux.mk.sh'。
正在使用stem尝试模式规则
linux.mk.sh'。
正在尝试隐式先决条件SCCS/s.linux.mk.sh'。
未找到
linux.mk'的隐式规则。
已完成目标文件linux.mk'的先决条件。
无需重新制作目标
linux.mk'。
make:linux.mk无需执行任何操作。请尝试以下操作:
CORE_DIR = ../..
CODE_DIR = $(CORE_DIR)/code
CC=gcc
all: example.o
$(CC) -o output $<
example.o: $(CODE_DIR)/example.c $(CODE_DIR)/variable.h
$(CC) -c $<
CORE_DIR=../。。
代码\目录=$(核心\目录)/代码
CC=gcc
全部:示例
$(CC)-o输出$<
example.o:$(CODE\u DIR)/example.c$(CODE\u DIR)/variable.h
$(CC)-c$<
如何使用:
Makefile
的文件中,并在与此Makefile
相同的目录中调用make asmake
start.mk
,但在与此start.mk
相同的目录中调用make asmake-f start.mk
$(CC)…
行之前应该有并且只有一个选项卡
“无规则生成目标”错误意味着您要求
make
根据Makefile给定的规则更新目标,但更新该目标所需的规则不存在。这通常意味着您在命令行中指定了错误的目标名称
例如,如果您正在使用上面的Makefile,但通过以下命令调用
make
:makeoutput
,因为没有规则说明如何更新或生成output
,make
将为您提供无规则错误。您的问题中的代码是否来自文件“start.mk”?是,makefile名称是start.mk是以$(CC)
开头的一行,缩进了一个制表符(而不是空格)?是的,该行是以制表符开头的。答案对您没有帮助的原因是您对问题不小心。如果您的makefile被调用为start.mk
,为什么生成的输出列表linux.mk
?显然,您在提示下键入的内容与您在此处向我们显示的内容并不相同。其次,命令make-dstart.mk
是错误的:如果要将makefile命名为非标准名称,则必须使用-f
标志;它应该是make-d-fstart.mk
。make:start.mk即将到来,无需任何操作。这是什么意思?@lokesharo将它们放在名为Makefile
的文件中,然后尝试运行makeall
@lokesharo,这start.mk
来自何处?您的makefile的名称是什么?您用来调用make
的确切命令(包括其所有选项)是什么?@lokesharo您需要-f start.mk
。您会收到错误消息,因为您缺少-f
,因此make
认为start.mk
是一个目标。