基本上我在Windows中有简单的makefile。我读过这个thread。他们说如果我在makefile的同一文件夹中有一个名为clean
的文件,并且我有一个命令用于清理makefile中的某些文件,并且它的名称是干净的,那么makefile将不会运行该命令。它反而显示了这条消息
'clean' is up-to-date
现在要解决这个问题,我应该添加.PHONY : clean
,因此,即使我在同一个名为clean
的文件夹中有另一个文件,makefile也会运行实际的命令。这是我的理解。添加phony
绝对没有任何影响。它再次打印出此消息。
'clean' is up-to-date
这是我在Windows中的makefile。 注意:我使用nmake
# Specify compiler
CC = cl.exe
# Specify flags
# /Zi -- Enable debugging
# /O2 --
CFLAGS = /EHsc /c /W1 /Zi /O2
# Specify linker
LINK = link.exe
.PHONY : all
all : app
# Link the object files into a binary
app : main.o
$(LINK) /OUT:app.exe main.o
# Compile the source files into object files
main.o : main.cpp
$(CC) $(CFLAGS) main.cpp /Fomain.o
# Clean target
.PHONY : clean
clean:
del *.o *.exe *.pdb
的main.cpp
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
同一文件夹中的文件。