首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成错误后清除Makefile \##.

生成错误后清除Makefile \##.
EN

Stack Overflow用户
提问于 2019-09-26 16:10:01
回答 1查看 1.3K关注 0票数 1

Situation

试图在编译Makefile之后进行清理。

Error

这是我在尝试进行一个简单的清理操作时经常收到的错误。

错误:

命令:

使linux

代码语言:javascript
复制
g++ Main.o CHARACTER.o ATTRIBUTES.o -o bin/release/Player.sh find *.o -type f -delete  
g++: error: find: No such file or directory
g++: error: f: No such file or directory
g++: error: unrecognized command line option ‘-type’; did you mean ‘-pipe’?

命令:

使linux

代码语言:javascript
复制
g++ Main.o CHARACTER.o ATTRIBUTES.o -o bin/release/Player.sh rm -f *.o
g++: error: rm: No such file or directory
g++: error: unrecognized command line option ‘-f’

命令:

使linux

代码语言:javascript
复制
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

Makefile

代码语言:javascript
复制
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

汇总

除了清理例程之外,一切都很好,但是,一旦尝试清理,我就会出错,因为无论是Win32还是Linux,我的操作系统都可以访问这些函数。不能完全理解为什么这些简单的命令经常会出现问题。

类似文章

尽管我的问题类似于下面的帖子,但它们的解决方案显然没有任何效果。

代码语言:javascript
复制
- Cheers and thanks in advance for any feedback.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-26 16:20:56

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

代码语言:javascript
复制
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脚本保留。

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

https://stackoverflow.com/questions/58120833

复制
相关文章

相似问题

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