2017-03-19 10 views
0

私の.cppファイルが変更されたときにMakefileでechoコマンドを実行しようとしています。Makeはファイルが変更されていることを認識しません

のMakefile:

src/*.cpp: 
    echo 'file has changed' 

コマンドライン:

$ mingw32-make.exe 
mingw32-make: 'src/main.cpp' is up to date. 

私は、これはmain.cppが、私はそれを修正した後でも、最新のものであると言う理由として困惑しています。 file has changedを出力してはいけませんか?

バージョン情報:

$ mingw32-make.exe --version 
GNU Make 4.1 
Built for i686-w64-mingw32 
+0

あなた*本物*メイクということですか?メイクファイルのワイルドカードは '*'ではなく '%'です。 –

+0

@ G.M。 '*'を '%'に変更すると、 'mingw32-make:*** No targets。私が.cppファイルのいずれかを変更したときでも。 – TrampolineTales

答えて

3

あなた*のの.cppファイルに依存目標を持つことができます。

cpp_files_are_up_to_date: src/*.cpp 
    echo 'files have changed' 
    echo.>cpp_files_are_up_to_date 
+0

.cppファイルの変更日を何かと比較できないのはなぜですか?印刷 'ファイルが変更されました'時間の100%は本当に私の問題を解決しません。 – TrampolineTales

+0

'mingw32-make:*** 'ターゲットにするルールがありません' * .cpp '、' cpp_files_are_up_to_date 'で必要です。停止してください。 – TrampolineTales

+0

メイクファイル全体をこの補助ターゲットだけで置き換えてみてください。 – mkcms

関連する問題