回答編集履歴
2
ALLターゲットのあたりの問題についての記述を追加した。
answer
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
提示されているMakefileは、.oファイルがあるのが前提の書き方になっていますがcleanした後など.oファイルがないは状態では正しく動作しません。.oが存在しない状態で「*.o」や「%.o」としても.oファイルのリストは得たり、マッチングさせたりは出来ません。
|
4
4
|
.oのリストである$(OBJ)は.現在存在するcppファイルのリスト$(SRC)を取得してそこからから得るようにする必要があります。
|
5
|
+
また実行モジュールを作る規則のターゲットの指定(ALL)は$(TARGET)となるべきだと思います。意図通りに.oが流用されないというのはこれのことを言ってるのかもしれないと思いました。
|
6
|
+
デフォルトターゲットALLは慣習的には小文字のallとすることが多いと思うのでそのように修正しました。
|
5
7
|
runターゲットの意図や.hppの扱いが不明だったのですがとりあえずそのままにしてあります。
|
6
8
|
実行されるコマンドの確認のためにコマンド前の「@」は外してあります。
|
7
9
|
GNU Make 4.1で動作確認しています。
|
1
実行結果の整形忘れを修正した。
answer
CHANGED
@@ -57,7 +57,7 @@
|
|
57
57
|
実行モジュールを削除してからビルド
|
58
58
|
```terminal
|
59
59
|
$ rm ABC
|
60
|
-
|
60
|
+
$ ls -l `find . -type f`
|
61
61
|
-rw-rw-r-- 1 hidezzz hidezzz 341 9月 26 08:13 ./Makefile
|
62
62
|
-rw-rw-r-- 1 hidezzz hidezzz 1232 9月 26 08:20 ./hoge.o
|
63
63
|
-rw-rw-r-- 1 hidezzz hidezzz 5696 9月 26 08:20 ./main.o
|