0

基本的に、Windowsには単純なmakefileがあります。このスレッドを読みました。cleanたとえば、makefile と同じフォルダーに名前の付いたファイルがあり、makefile 内のいくつかのファイルを消去するコマンドがあり、その名前がクリーンである場合、makefile はコマンドを実行しないと彼らは言っています。むしろこのメッセージが表示されます

'clean' is up-to-date

この問題に対処するには、 を追加する必要が.PHONY : cleanあります。したがって、同じフォルダーに という別のファイルがある場合でもclean、makefile は実際のコマンドを実行します。これが私の理解です。追加phonyしてもまったく効果がありません。このメッセージを再度出力します。

'clean' is up-to-date

これは、Windows での私のメイクファイルです。:私は使用します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;
}

同じフォルダ内のファイル。

ここに画像の説明を入力

4

0 に答える 0