Make:***未指定目标且未找到makefile。停止

问题描述 投票:-1回答:2
CC=gcc
CFLAGS=-Wall -ansi 

reversepoetry : reversepoetry.o 
    $(CC) -o reversepoetry reversepoetry.o 

reversepoetry.o : reversepoetry.c 
    $(CC) $(CFLAGS) -c reversepoetry.c 
run: 
    $./reversepoetry  
clean:
    rm reversepoetry reversepoetry.o 

我在运行这个make文件时遇到了麻烦。目录中唯一的东西是makefile.txt和reversepoetry.c我输入$ make,我得到标题中发布的错误

c makefile
2个回答
1
投票

makefile应该被称为Makefile,而不是makefile.txt


0
投票

错误消息显示“未找到makefile”。这意味着它没有看到您的文件。根据the GNU Make documentation,它默认按顺序查找GNUmakefilemakefileMakefile;他们建议你把你的文件称为Makefile。这些都没有扩展。

它还说明了如果您确定要为makefile使用非标准名称该怎么做:

如果要为makefile使用非标准名称,可以使用'-f'或'--file'选项指定makefile名称。参数'-f name'或'--file=name'告诉make将文件名作为makefile读取。如果您使用多个'-f'或'--file'选项,则可以指定多个makefile。所有makefile都按指定的顺序有效连接。如果指定'GNUmakefile'或'makefile',则不会自动检查默认的makefile名称Makefile-f--file

因此,您应该将makefile重命名为Makefile而不使用扩展名,或者使用make调用make -f makefile.txt。您应该非常喜欢第一个选项,因为任何查看代码的人都会期望它。除了makefile之外,它还不是一个纯文本的自然语言文件,仅供.txt通常暗示的人类使用。

© www.soinside.com 2019 - 2024. All rights reserved.