makefile未到达";“干净”;删除.o文件的步骤

makefile未到达";“干净”;删除.o文件的步骤,makefile,Makefile,未删除.o文件。当我尝试在rm前放置@echo时,似乎也没有发生。有什么想法吗?现在,清理目标取决于“文件”rm、-f、*.o和*~。因此,只有当这些“文件”被修改时,它才会运行 线路 CXX=clang++ $(CXXFLAGS) CXXFLAGS=-O2 OFILES=a.o b.o c.o .SUFFIXES: .o .cpp main: $(OFILES) $(CXX) $(OFILES) clean: rm -f *.o *~ a.o: a.cpp a.h b.o:

未删除.o文件。当我尝试在rm前放置@echo时,似乎也没有发生。有什么想法吗?

现在,清理目标取决于“文件”
rm
-f
*.o
*~
。因此,只有当这些“文件”被修改时,它才会运行

线路

CXX=clang++ $(CXXFLAGS)
CXXFLAGS=-O2
OFILES=a.o b.o c.o

.SUFFIXES: .o .cpp

main: $(OFILES)
    $(CXX) $(OFILES)

clean: rm -f *.o *~ 

a.o: a.cpp a.h
b.o: b.cpp b.h
c.o: c.cpp
应该是两条线


编写makefiles的常见方法如下:

clean:
    rm -f *.o *~ 
在您的情况下,如果您希望“默认”目标为
clean
,那么如果您使用上述模板,则根据
clean
目标设置
default

# Variables
VARIABLE1=value1
VARIABLE2=value2
# etc...

# Targets
# The first target is the "default" target when `make` is invoked
# without any specific target
default: some_other_target

# Other targets...

现在,清理目标取决于“文件”
rm
-f
*.o
*~
。因此,只有当这些“文件”被修改时,它才会运行

线路

CXX=clang++ $(CXXFLAGS)
CXXFLAGS=-O2
OFILES=a.o b.o c.o

.SUFFIXES: .o .cpp

main: $(OFILES)
    $(CXX) $(OFILES)

clean: rm -f *.o *~ 

a.o: a.cpp a.h
b.o: b.cpp b.h
c.o: c.cpp
应该是两条线


编写makefiles的常见方法如下:

clean:
    rm -f *.o *~ 
在您的情况下,如果您希望“默认”目标为
clean
,那么如果您使用上述模板,则根据
clean
目标设置
default

# Variables
VARIABLE1=value1
VARIABLE2=value2
# etc...

# Targets
# The first target is the "default" target when `make` is invoked
# without any specific target
default: some_other_target

# Other targets...

现在,清理目标取决于“文件”
rm
-f
*.o
*~
。因此,只有当这些“文件”被修改时,它才会运行

线路

CXX=clang++ $(CXXFLAGS)
CXXFLAGS=-O2
OFILES=a.o b.o c.o

.SUFFIXES: .o .cpp

main: $(OFILES)
    $(CXX) $(OFILES)

clean: rm -f *.o *~ 

a.o: a.cpp a.h
b.o: b.cpp b.h
c.o: c.cpp
应该是两条线


编写makefiles的常见方法如下:

clean:
    rm -f *.o *~ 
在您的情况下,如果您希望“默认”目标为
clean
,那么如果您使用上述模板,则根据
clean
目标设置
default

# Variables
VARIABLE1=value1
VARIABLE2=value2
# etc...

# Targets
# The first target is the "default" target when `make` is invoked
# without any specific target
default: some_other_target

# Other targets...

现在,清理目标取决于“文件”
rm
-f
*.o
*~
。因此,只有当这些“文件”被修改时,它才会运行

线路

CXX=clang++ $(CXXFLAGS)
CXXFLAGS=-O2
OFILES=a.o b.o c.o

.SUFFIXES: .o .cpp

main: $(OFILES)
    $(CXX) $(OFILES)

clean: rm -f *.o *~ 

a.o: a.cpp a.h
b.o: b.cpp b.h
c.o: c.cpp
应该是两条线


编写makefiles的常见方法如下:

clean:
    rm -f *.o *~ 
在您的情况下,如果您希望“默认”目标为
clean
,那么如果您使用上述模板,则根据
clean
目标设置
default

# Variables
VARIABLE1=value1
VARIABLE2=value2
# etc...

# Targets
# The first target is the "default" target when `make` is invoked
# without any specific target
default: some_other_target

# Other targets...

@蒂德斯·史密斯。如果要在编译后删除对象,可以在$(CC)之后添加rm命令


这可以确保编译完成后,所有的.o文件和*~文件都会被删除。

@Tidus Smith。如果要在编译后删除对象,可以在$(CC)之后添加rm命令


这可以确保编译完成后,所有的.o文件和*~文件都会被删除。

@Tidus Smith。如果要在编译后删除对象,可以在$(CC)之后添加rm命令


这可以确保编译完成后,所有的.o文件和*~文件都会被删除。

@Tidus Smith。如果要在编译后删除对象,可以在$(CC)之后添加rm命令


这可以确保编译完成后,所有的.o文件和*~文件都会被删除。

那么我如何让它删除它们呢?当我执行“make”时,a.o、b.o和c.o会出现在目录中。“我正试图摆脱这些。”蒂德斯米特读了我的全部答案,它有解决办法。使用两行应该可以让它工作吗?.o文件仍然没有被删除。@TidusSmith并且没有其他错误消息吗?请记住,makefile是敏感的,当涉及到空格时,必须使用制表符,而不是空格来使用命令缩进行。我很抱歉。“保持清洁”确实有效。我正在尝试使用“make”并让它自动删除文件,而不必在之后执行“make clean”。那么我如何让它删除这些文件呢?当我执行“make”时,a.o、b.o和c.o会出现在目录中。“我正试图摆脱这些。”蒂德斯米特读了我的全部答案,它有解决办法。使用两行应该可以让它工作吗?.o文件仍然没有被删除。@TidusSmith并且没有其他错误消息吗?请记住,makefile是敏感的,当涉及到空格时,必须使用制表符,而不是空格来使用命令缩进行。我很抱歉。“保持清洁”确实有效。我正在尝试使用“make”并让它自动删除文件,而不必在之后执行“make clean”。那么我如何让它删除这些文件呢?当我执行“make”时,a.o、b.o和c.o会出现在目录中。“我正试图摆脱这些。”蒂德斯米特读了我的全部答案,它有解决办法。使用两行应该可以让它工作吗?.o文件仍然没有被删除。@TidusSmith并且没有其他错误消息吗?请记住,makefile是敏感的,当涉及到空格时,必须使用制表符,而不是空格来使用命令缩进行。我很抱歉。“保持清洁”确实有效。我正在尝试使用“make”并让它自动删除文件,而不必在之后执行“make clean”。那么我如何让它删除这些文件呢?当我执行“make”时,a.o、b.o和c.o会出现在目录中。“我正试图摆脱这些。”蒂德斯米特读了我的全部答案,它有解决办法。使用两行应该可以让它工作吗?.o文件仍然没有被删除。@TidusSmith并且没有其他错误消息吗?请记住,makefile是敏感的,当涉及到空格时,必须使用制表符,而不是空格来使用命令缩进行。我很抱歉。“保持清洁”确实有效。我正在尝试使用“make”并让它自动删除文件,而不必在之后执行“makeclean”。