会員登録すると
学習することができます。
会員登録する(無料)
登録済みの方はこちら
ログイン

Makefile とは ― 手順に名前をつける

目安学習時間 15分

課題

全問正解でレクチャー完了です。

【問題1】

ファイルを作らない操作に .PHONY を付ける理由はどれですか。

[選択肢]

【問題2】

Makefile のレシピ(コマンド行)の行頭に必要なものはどれですか。

[選択肢]
会員登録すると
学習することができます。
会員登録する(無料)

学ぶ目的

「あのコマンド、なんだっけ」を無くす

プロジェクトには、決まった操作がいくつかあります。テストを流す、ビルドする、片付ける。これらに名前をつけて置いておくのが 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
  • タブでなければならない理由
  • 実行されない事故の防ぎ方

質問

まだ質問は投稿されていません。

質問投稿

ログイン後に質問の投稿ができます。