会員登録すると
学習することができます。
会員登録する(無料)
学習することができます。
登録済みの方はこちら
ログイン
学ぶ目的
「あのコマンド、なんだっけ」を無くす
プロジェクトには、決まった操作がいくつかあります。テストを流す、ビルドする、片付ける。これらに名前をつけて置いておくのが Makefile です。
.PHONY: hello clean
hello:
@echo "こんにちは"
clean:
@rm -f out.txt
実行はこうです。
make hello
出力は こんにちは です。
3つの部品
| 部品 | 意味 |
|---|---|
| ターゲット |
hello: の部分。呼び出す名前 |
| レシピ | その下に書くコマンド。行頭はタブ |
.PHONY |
「これはファイル名ではなく、ただの名前」という宣言 |
最初にはまるのはタブ
レシピの行頭はタブでなければいけません。スペースで書くと、こうなります。
Makefile:2: *** missing separator. Stop.
見た目では区別がつかないので、この事故は必ず一度は起きます。エラーメッセージを覚えておけば、すぐ直せます。
.PHONY を書く理由
clean という名前のファイルがたまたま存在すると、Make は「もう作ってある」と判断して、何も実行しません。.PHONY はそれを防ぐ宣言です。ファイルを作らない操作には必ず付けます。
行頭の @
@echo の @ は「実行するコマンド自体は表示しない」という指定です。付けないと、コマンドと結果の両方が出ます。
このレクチャーで学ぶこと
- ターゲット・レシピ・.PHONY
- タブでなければならない理由
- 実行されない事故の防ぎ方
質問
まだ質問は投稿されていません。
質問投稿
ログイン後に質問の投稿ができます。