首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Makefile产生错误"No rule to make target“

Makefile产生错误"No rule to make target“
EN

Stack Overflow用户
提问于 2016-07-08 03:38:42
回答 2查看 11K关注 0票数 2

我试着用另外两个最相关的主题来解决这个问题:Makefile error: No rule to make target Makefile: No rule to make target. Stop

但这两个似乎都没有解决我的问题。

我不确定我的代码哪里出了问题,因为我的讲师验证了代码在他那端可以正常工作。

我的makefile的代码是:

代码语言:javascript
复制
TARGET  = demo
FILES   = test.c
OBJS    = $(FILES:.c=.o)
ASMS    = $(FILES:.c=.s)

all:    $(TARGET)

$(TARGET):  $(OBJS)
    gcc -o $@ $^

%.o:    %.c
    gcc -c $< -o $@

%.s:    %.c
    gcc -S -masm=intel $< -o $@

asm:    $(ASMS)

run:    $(TARGET)
    ./$(TARGET)

clean:
    rm -f $(TARGET) $(OBJS) $(ASMS)

但是,当我尝试执行"make run“时,它会产生结果

代码语言:javascript
复制
make: *** No rule to make target 'run'. Stop.

如图所示,image

我正在尝试编译的程序的实际代码只有4行。我不认为这是问题的原因

代码语言:javascript
复制
#include <stdio.h>
char *msg = "Exam Lab 1";

int main(int argc, char *argv[]) {
    printf("%s\n", msg);
}

下面是我运行make的目录的内容:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-08 04:13:02

您的makefile没有正确的名称。

默认情况下,make查找名为makefileMakefile的文件。你的文件名为Makefile.txt,所以make找不到它。

将名称更改为makefileMakefile,或者使用-f选项指定makefile名称,例如。make -f Makefile.txt

票数 2
EN

Stack Overflow用户

发布于 2016-07-08 04:13:23

从您提供的图像中可以清楚地看出,您已经将该文件命名为Makefile.txt。正如@dbus.所说,makefile必须命名为Makefilemakefile。默认情况下,这些是唯一要查找的文件名。

否则,您必须运行make -f Makefile.txt

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38253951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档