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