C++ Makefile |生成后清理-错误:没有此类文件或目录|错误:目标的配方*失败

C++ Makefile |生成后清理-错误:没有此类文件或目录|错误:目标的配方*失败,c++,linux,makefile,makefile-errors,C++,Linux,Makefile,Makefile Errors,形势 正在尝试在生成文件编译后进行清理 错误 这些是我在尝试进行简单的清理操作时经常遇到的错误 错误: 命令: 制作linux 命令: 制作linux 命令: 制作linux Makefile 摘要 除了清理例程之外,其他一切都很正常,但是,一旦尝试清理,我就会发现在整个操作系统(无论是Win32还是Linux)中都可以访问的函数出现错误。我不太明白为什么这些简单的命令经常出现问题 类似帖子 尽管我的问题与下面的帖子类似,但他们的解决方案显然没有效果 干杯并提前感谢您的反馈 您正在将f

形势

正在尝试在生成文件编译后进行清理

错误

这些是我在尝试进行简单的清理操作时经常遇到的错误

错误:

命令:

制作linux

命令:

制作linux

命令:

制作linux

Makefile

摘要

除了清理例程之外,其他一切都很正常,但是,一旦尝试清理,我就会发现在整个操作系统(无论是Win32还是Linux)中都可以访问的函数出现错误。我不太明白为什么这些简单的命令经常出现问题

类似帖子

尽管我的问题与下面的帖子类似,但他们的解决方案显然没有效果

    • 干杯并提前感谢您的反馈

您正在将
find*.o-type f-deletefind*.o-type f-delete
和其他清理命令作为参数添加到
g++
。放
在命令之间。例如:

linux: Main.o CHARACTER.o ATTRIBUTES.o
        g++ Main.o CHARACTER.o ATTRIBUTES.o -o bin/release/Player.sh ;
        clean

请注意,这个目标,
linux
,实际上并不生成
linux
文件。它将生成一个名为
bin/release/Player.sh
的二进制文件,这对于二进制文件来说是一个非常糟糕的名称
.sh
通常为shell脚本保留。

您正在添加
find*.o-type f-deletefind*.o-type f-delete
和其他清理命令作为
g++
的参数。放
在命令之间。例如:

linux: Main.o CHARACTER.o ATTRIBUTES.o
        g++ Main.o CHARACTER.o ATTRIBUTES.o -o bin/release/Player.sh ;
        clean


请注意,这个目标,
linux
,实际上并不生成
linux
文件。它将生成一个名为
bin/release/Player.sh
的二进制文件,这对于二进制文件来说是一个非常糟糕的名称
.sh
通常是为shell脚本保留的。

我不知道
find
从何而来……你不可能从你展示给我们的makefile中获得输出。请提供您正在使用的实际makefile,或者至少提供相关部分。此外,您还有名为
Command
的部分,但实际上并没有显示您键入的命令;请同时显示您在问题中运行的make命令。我认为这些是OP键入的命令。这就是我在回答问题时的假设:-)原始命令是在各自操作系统下的
makelinux
makewin32
s@NobleCloud您发出了哪个命令来生成
find
llne?把你在命令行中给出的实际命令放到问题中。我不知道
find
从何而来……你不可能从你展示给我们的makefile中得到输出。请提供您正在使用的实际makefile,或者至少提供相关部分。此外,您还有名为
Command
的部分,但实际上并没有显示您键入的命令;请同时显示您在问题中运行的make命令。我认为这些是OP键入的命令。这就是我在回答问题时的假设:-)原始命令是在各自操作系统下的
makelinux
makewin32
s@NobleCloud您发出了哪个命令来生成
find
llne?在问题的命令行中输入您实际发出的命令。对于您的
提出建议。我知道有很多方法可以格式化一个Makefile,但是,你介意指出一个样板文件,或者一个格式化一个基本Makefile的“通用方法”或者一个“正确”的方法吗?这是一个完全不同的问题。但是,您应该确保目标(如
win32
)实际生成一个名为
win32
的文件,否则每次都会尝试重新生成该文件。还要确保命令有效<例如,code>g++Main.o CHARACTER.o ATTRIBUTES.o-o bin/release/Player.sh clean
似乎无效
clean
将成为
g++
@NobleCloud的一个参数。在Makefile中的实际命令之前,您还需要一个
。看起来你没有。我在实际文件中有实际的单个
。我不知道这里还有什么可以说明的。抱歉。除了你关于放置终结者的评论之外,
或在每条语句的末尾加一个分号。这可以通过Makefile实现。我自己尝试过,但没有多大成功,无法找到指示其用法的文档。关于您的
,请提出
建议。我知道有很多方法可以格式化一个Makefile,但是,你介意指出一个样板文件,或者一个格式化一个基本Makefile的“通用方法”或者一个“正确”的方法吗?这是一个完全不同的问题。但是,您应该确保目标(如
win32
)实际生成一个名为
win32
的文件,否则每次都会尝试重新生成该文件。还要确保命令有效<例如,code>g++Main.o CHARACTER.o ATTRIBUTES.o-o bin/release/Player.sh clean
似乎无效
clean
将成为
g++
@NobleCloud的一个参数。在Makefile中的实际命令之前,您还需要一个
。看起来你没有。我在实际文件中有实际的单个
。我不知道这里还有什么可以说明的。抱歉。除了你关于放置终结者的评论之外,
或在每条语句的末尾加一个分号。这可以通过Makefile实现。我自己尝试过,但没有多大成功,并且找不到指示其用法的文档。
g++ Main.o CHARACTER.o ATTRIBUTES.o -o bin/release/Player.sh clean
g++: error: clean: No such file or directory
Makefile:2: recipe for target 'linux' failed
linux: Main.o CHARACTER.o ATTRIBUTES.o
    g++ Main.o CHARACTER.o ATTRIBUTES.o -o bin/release/Player.sh clean

(alternate command attempt)
    g++ Main.o CHARACTER.o ATTRIBUTES.o -o bin/release/Player.sh -rm -f *.o

(alternate command attempt)
    g++ Main.o CHARACTER.o ATTRIBUTES.o -o bin/release/Player.sh find *.o -type f -delete

win32: Main.o CHARACTER.o ATTRIBUTES.o
    g++ Main.o CHARACTER.o ATTRIBUTES.o -o bin/release/Player.exe cleanWin

main.o: Main.cpp
    g++ -c Main.cpp

CHARACTER.o: src/CHARACTER.cpp include/CHARACTER.h
    g++ -c src/CHARACTER.cpp

ATTRIBUTES.o: src/ATTRIBUTES.cpp include/ATTRIBUTES.h
    g++ -c src/ATTRIBUTES.cpp

clean:
    rm -f *.o

cleanWin:
    del *.o
linux: Main.o CHARACTER.o ATTRIBUTES.o
        g++ Main.o CHARACTER.o ATTRIBUTES.o -o bin/release/Player.sh ;
        clean