makefile

3391 ワード

make & Makefile



makeはファイル管理ユーティリティです.
ファイル間の依存関係を特定し、makefile(技術ファイル)の説明に従ってコンパイラでSHELLコマンドを順番に実行できるようにコマンドを発行します.
なぜmakefileを使うのか
各ファイルの繰り返しコマンドを自動化することで、
  • は時間を節約します.
  • は、計画の依存構造を迅速に決定し、管理することができる
  • 簡単な繰り返しタスクと書き換えを最低
  • に下げる

    makefileの構成



    ターゲットファイル(Target):コマンド実行結果を保存するファイル
    依存性:ターゲットファイルの作成に必要な材料
    コマンド(Command):実行するコマンド
    マクロ(macro):コードを簡略化する方法
    makefile作成ルール
    1.マクロ定義をmakefileで定義した文字列に変換します.
    2.命令語の先頭は「tab」で始まる必要があります.
    3.依存性のないターゲットでも商用化が可能です.

    Makefile練習


    [source code]
    // ./include/configs.h
    #define CONFIG
    // main.c
    #include <stdio.h>
    #include "configs.h"  // option -I
    
    int main() {
    #if defined(CONFIG)  // macro
        printf("Hello World\n");
    #else
        printf("Bye World\n");
    #endif
        return 0;
    }
    [makefile]

    [result]
    $ make
    1.テスト対象コマンドをすべての対象の依存項目として実行
    2.cleanターゲットコマンドの実行
    3.マクロで定義されている&{TARGET}、すなわちmain.o運転目標
    4.allのすべての依存項目を準備した後、allコマンドを実行する

    [TIP!]
    makefileの作成中に、内部マクロを使用してコードを簡略化できます.
    1.$@:現在のターゲットの名前
    2.$^:現在のターゲットの依存リスト
    example)

    Reference)

  • bowbowbow:makeとmakefile