linuxに簡単なmakefileファイルを書く
1951 ワード
makefileとは?多くのWinodwsのプログラマーはこれを知らないかもしれません.WindowsのIDEがあなたのためにこの仕事をしたからです.しかし、professionalのプログラマーになるには、makefileが理解しなければならないと思います.これは今こんなに多くのHTMLのエディタがあるようですが、専門家になりたいなら、HTMLの標識の意味を理解しなければなりません.特にUnixでのソフトウェアコンパイルでは、自分でmakefileを書かないわけにはいきません.makefileを書くかどうか、大きなプロジェクトを完成させる能力があるかどうかを一つの側面から説明します.
なぜなら、makefileはプロジェクト全体のコンパイルルールに関係しているからです.1つのプロジェクトのソースファイルはカウントされず、タイプ、機能、モジュール別にいくつかのディレクトリに配置されます.makefileは、makefileがShellスクリプトのようにオペレーティングシステムのコマンドを実行できるため、どのファイルが先にコンパイルされる必要があるか、どのファイルが後にコンパイルされる必要があるか、どのファイルが再コンパイルされる必要があるか、さらに複雑な機能操作を実行する必要があるかを指定する一連のルールを定義しています.
makefileがもたらすメリットは「自動化コンパイル」であり、書き終わったら、永久に使用し、1つのmakeコマンドだけで、工事全体が完全に自動コンパイルされ、ソフトウェア開発の効率を極めて向上させることである.
簡単な例を挙げてmakefileファイルの書き方を見てみましょう.
この例では、コンパイルする必要があるすべてのファイルが1つのフォルダにありますが、実際にはそうではありません.ファイルが1つのフォルダにない場合は、makefileファイルにパスを指定する必要があります.たとえば、次のようにします.
しかし、このように書くのは面倒で、新しいcファイルを追加したり、ファイルの名前を変更したりすると、多くの場所が変更されます.makefileファイル1は、以下の方法で簡略化することができる.変数2.make暗黙的に押し倒す1)中間ファイルの生成時に依存するソースファイル2)はコマンドgcc 3を生成する.VCATH環境変数は検索パス4を作成する.CC環境変数作成コンパイルツールが究極的に簡略化されたmakefileファイルは以下の通りである.
最後に、makefileファイルを使用すると、デフォルトではmakeコマンドを入力するだけです.1.現在のディレクトリの下に「Makefile」または「makefile」という名前のファイルが見つかります.2.見つかった場合、ファイルの最初のターゲットファイル(target)を探し、上記の例の実行可能ファイルmainを探し、このファイルを最終ファイル3に作文する.このファイルが存在しない場合、後で定義するコマンドを実行してmainファイル4を生成する.このファイルが存在する場合、mainファイルの新しいファイルよりも変更時間が検索され、残りのファイルは省略され、最後に新しいmainファイルが生成されます(大規模なエンジニアリングに適用されると、プログラミングを繰り返す時間を大幅に節約できます).
なぜなら、makefileはプロジェクト全体のコンパイルルールに関係しているからです.1つのプロジェクトのソースファイルはカウントされず、タイプ、機能、モジュール別にいくつかのディレクトリに配置されます.makefileは、makefileがShellスクリプトのようにオペレーティングシステムのコマンドを実行できるため、どのファイルが先にコンパイルされる必要があるか、どのファイルが後にコンパイルされる必要があるか、どのファイルが再コンパイルされる必要があるか、さらに複雑な機能操作を実行する必要があるかを指定する一連のルールを定義しています.
makefileがもたらすメリットは「自動化コンパイル」であり、書き終わったら、永久に使用し、1つのmakeコマンドだけで、工事全体が完全に自動コンパイルされ、ソフトウェア開発の効率を極めて向上させることである.
簡単な例を挙げてmakefileファイルの書き方を見てみましょう.
main: main.o list.o // main.o list.o main
gcc -o main main.o lilst.o // ,** tab , **
main.o:main.c // main.c main.o
gcc -c main.c
list.o:list.c // list.c list.o
gcc -c list.c
この例では、コンパイルする必要があるすべてのファイルが1つのフォルダにありますが、実際にはそうではありません.ファイルが1つのフォルダにない場合は、makefileファイルにパスを指定する必要があります.たとえば、次のようにします.
VPATH=List // ,
main: main.o list.o
gcc -o main main.o lilst.o
main.o:main.c
gcc -c main.c
list.o:list.c
gcc -c list.c
しかし、このように書くのは面倒で、新しいcファイルを追加したり、ファイルの名前を変更したりすると、多くの場所が変更されます.makefileファイル1は、以下の方法で簡略化することができる.変数2.make暗黙的に押し倒す1)中間ファイルの生成時に依存するソースファイル2)はコマンドgcc 3を生成する.VCATH環境変数は検索パス4を作成する.CC環境変数作成コンパイルツールが究極的に簡略化されたmakefileファイルは以下の通りである.
VPATH=List:DoubLelist// c
filename=main.o\// .o , .o
list.o\ // ‘\’ ,
doublelist.o
main:$(filename)// main
$(filename):// .o
最後に、makefileファイルを使用すると、デフォルトではmakeコマンドを入力するだけです.1.現在のディレクトリの下に「Makefile」または「makefile」という名前のファイルが見つかります.2.見つかった場合、ファイルの最初のターゲットファイル(target)を探し、上記の例の実行可能ファイルmainを探し、このファイルを最終ファイル3に作文する.このファイルが存在しない場合、後で定義するコマンドを実行してmainファイル4を生成する.このファイルが存在する場合、mainファイルの新しいファイルよりも変更時間が検索され、残りのファイルは省略され、最後に新しいmainファイルが生成されます(大規模なエンジニアリングに適用されると、プログラミングを繰り返す時間を大幅に節約できます).