C++ makefile问题

我最近开始使用这个makefile (改编自web)来构建我的C++代码:

a.exe:  main.o
    g++ $(CFLAGS) -o $@ $^
main.o: main.cpp code.hpp
CFLAGS=-ggdb -std=c++17 -Wall -Werror=pedantic -Wextra 

#-------------------------------------------------------------

run:    a.exe
    ./a.exe

clean:
    rm -f *.o
    rm -f *.exe
    rm -f *.gch
    rm -f *.log

build:  clean   a.exe

%.o:    %.cpp
    g++ $(CFLAGS) -c $<

#====================================================

在我的.bashrc文件中,我使用了以下别名:

alias mkbld='make build >& build.log'

当我在命令行上执行上面的别名时,我看到makefile中指定的clean above首先删除当前工作目录中的所有相关文件,并且这些文件作为构建的一部分重新生成。但是,不会重新生成文件build.log。我认为,构建前清理逻辑也应该以同样的方式应用于此文件(尽管此文件本身不是构建的),因为每次构建日志都会写入此文件,并且每次都应该重新创建它。

你知道为什么这种情况没有发生吗?

转载请注明出处:http://www.insurance-fj.com/article/20230526/1362787.html