为什么假冒无法在我的makefile中工作

时间:2016-01-08 05:56:39

标签: c++ makefile nmake cl

基本上我在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;
}

同一文件夹中的文件。

enter image description here

0 个答案:

没有答案