Slog66_自動化ツールのmakeとMakefile 1

3573 ワード

  • ArthurSlog
  • SLog-66
  • Year·1
  • Guangzhou·China
  • Sep 10th 2018
  • ArthurSlog Page
  • GitHub
  • NPM Package Page
  • 掘金ホームページ
  • 簡書ホームページ
  • segmentfault

  • 天の道は余りを損なって人の道を補うに足らない.さもないと損をして余裕がない.

    開発環境MacOS(High Sierra 10.13.5)


    必要な情報と情報ソース:

  • makeツール
  • 統合開発環境
  • makeツールのアドバイザファイルMakefile
  • エンコーディングの開始

  • デスクトップに切り替え、フォルダmakefileを作成します.demo

  • cd ~/Desktop/&& mkdir makefile_demo
  • makefileに切り替えdemoパス下
  • cd makefile_demo
  • Makefileファイル
  • を作成
    Makefile
    say_hello:
            echo "Hello Malefile"
  • その後、コマンドラインを開き、現在のパスの下にコマンド
  • を入力.
    make
  • 結果:
  • echo "Hello Malefile"
    Hello Malefile
  • の上のコードの中で;
  • say_helloはコマンドラインによって実行されるメソッドです.
  • echo「Hello Malefile」はメソッドsay_helloの本体、echoはシステム命令で、命令の結果はコンソールで“Hello Malefile”のこの行の字
  • を印刷します
  • echo「Hello Malefile」という行は私たちが望んでいないので、前に@を付けて、コマンド自体の出力
  • をキャンセルします.
    Makefile
    say_hello:
            @echo "Hello Malefile"
  • もう一度試して、コマンドラインを開いて、現在のパスの下でコマンド
  • を入力します.
    make
  • 結果:
  • Hello Malefile
  • 今よく使われるMakefileファイルを書きに来ました.この中には3つの方法があります.
  • Makefile
    say_hello:
        @echo "Hello Malefile"
    
    generate:
        @echo "Create some text file..."
        touch file-{1..10}.txt
    
    clean:
        @echo "Cleaning up..."
        rm *.txt
  • もう一度試して、コマンドラインを開いて、現在のパスの下でコマンド
  • を入力します.
    make
  • の結果は依然として:
  • Hello Malefile
  • の下の2つの関数は
  • を実行していません.
  • 追加のものを作る必要があります.デフォルトで実行される方法は
  • に変更します.
  • オブジェクトを設定し、実行する関数をこのオブジェクトに埋め込み、栗を挙げます:「.DEFAULT_GOAL:=generate」
  • の完全なコードは、
  • です.
    Makefile
    .DEFAULT_GOAL := generate
    
    say_hello:
        @echo "Hello Malefile"
    
    generate:
        @echo "Create some text files..."
        touch file-{1..10}.txt
    
    clean:
        @echo "Cleaning up..."
        rm *.txt
  • その後、コマンドラインを開き、現在のパスの下にコマンド
  • を入力.
    make
  • 結果:
  • Create some text files...
    touch file-{1..10}.txt
  • 現在デフォルトで実行されている方法はgenerate
  • です.
  • が設定.DEFAULT_GOALオブジェクトは一度に1つのメソッド
  • しか実行できません.
  • 複数のメソッドを呼び出すには、次のようにallオブジェクトを設定する必要があります.栗:
  • Makefile
    all: say_hello generate
    
    say_hello:
            @echo "Hello Malefile"
    
    generate:
            @echo "Creating some files..."
            touch file-{1..10}.txt
    
    clean:
            @echo "Cleaning up..."
            rm *.txt
  • 生成したばかりのものを先にtxtファイルは
  • 削除
    rm -rf *.txt
  • その後、コマンドラインを開き、現在のパスの下にコマンド
  • を入力.
    make
  • 結果:
  • Hello Malefile
    Create some files...
    touch file-{1..10}.txt
  • ok、現在は両方の方法で
  • が実行されています.
  • 現在、「すべてのファイルの更新を強制する」方法
  • について話しています.
    Markfile
    .PHONY: all say_hello generate clean
    
    all: say_hello generate
    
    say_hello:
            @echo "Hello Malefile"
    
    generate:
            @echo "Creating some files..."
            touch file-{1..10}.txt
    
    clean:
            @echo "Cleaning up..."
            rm *.txt
  • 上の栗を見ました」.PHONYには4つの「すべてのファイルの更新を強制する」方法があります:
  • all//allの中の方法はsay_hello + generate
  • say_hello
  • generate
  • clean
  • makeが機能しない場合は、「.PHONY」オブジェクトの値
  • を設定してみてください.
  • これで、ベースのMakefileの理解と作成が完了しました.

  • 私の微信の公衆番号ArthurSlogに注目してください。


    私の文章が好きならいいねのメッセージを歓迎します。


    ありがとう