[Make&MakeFile]C/C++の構築
以前一緒に研究していた教授はいつも私に記録させてくれた.
頭で覚えたいだけなら、忘れても何を忘れたのかわからないと、最近実感したので、勉強の一つ一つをブログに記入しています.
まず、
では「なぜコンパイラを直接使わずにソースファイルとHeaderファイルが多数ある場合は、別々にコンパイルするのではなく、簡単に迅速に処理できます. プログラムは属性構造から把握しやすく、ファイル管理に便利である. プログラミングは一度しかやっていないので、終了ではなく継続的なパッチなので、メンテナンスが行き届いています.
構築するソースコードとヘッダファイルを構成します. ヘッダファイル は、使用するヘッダおよび関数を予め定義している.
関数を定義するソースファイル mainを含むソースファイル この3つのファイルからなる実行可能ファイルを作成します.各ファイルのコードは次のとおりです. header.h func.c main.c
ファイル構成が完了したら、マクロ(Macro) ターゲット 依存性 コマンド(Recipe)
(読者のために端末フォントの大きさを育成し、注釈の親近感を加える)
上記の構成から除外されました. Macro:常用文字列を含む変数ならもっといいですか?
よく使われる文字に名前を付けるのは、CかC++の前処理部分と考えられます! Tartget:コンパイルによって作成する(目的)ファイル. Dependence:ターゲット部分をコンパイルするための材料と考えられる. Recipe:実際のコンパイル部として実行するコマンドを書けばよい.
端末を開き、
しかし、このように終わるのはまだ足りないようですね.はい、fanytargetについてはまだ説明していません.これは、ターゲットの位置にあるが、コンパイルするファイルではない偽のターゲットに直訳することを意味します.では、どこで使われているのか調べてみましょう.
こう書いてあります
ターゲット、依存関係、およびRecipe構成(最終コンパイルコンテンツ向上) 常用オプションまたは単語マクロにより を整理する.必要に応じてPhonyTarget を設定
頭で覚えたいだけなら、忘れても何を忘れたのかわからないと、最近実感したので、勉強の一つ一つをブログに記入しています.
1.基本概念の説明
1)Makeは何ですか。なぜ使いますか。
Makefile
についてお話しする前に、ソフトウェアMake
についてご紹介します.まず、
make
というソフトウェアは、UNIXおよびLinux環境で主に使用されるプログラムを構築するためのツールです.端末にmake
で使用可能なソフトウェアを入力します.では「なぜコンパイラを直接使わずに
make
を使うのですか?」このようにすると疑問に思うかもしれません.理由は以下の通りです.2)Makefileとは?
Makefile
は、make
がどのコマンドをコンパイルおよび実行するか、make
を実行するには、ディレクトリにMakefile
が必要であることを示すファイルです.さらに、CMake
によってMakefile
を生成することができ、開発者が依存情報を誤って記述し、バージョンが歪むことを防止するためのプログラムである.2.使用方法
1)プロファイル
構築するソースコードとヘッダファイルを構成します.
#include <stdio.h>
void print();
#include "header.h"
int add(int a, int b)
{
return a+b;
}
int sub(int a, int b)
{
return a-b;
}
void print(int a, int b)
{
printf("add() res : %d\nsub() res : %d", add(a,b), sub(a,b));
}
#include "header.h"
int main()
{
int a = 5, b = 3;
print(a, b);
return 0;
}
2)コンパイル
ファイル構成が完了したら、
Makefile
を作成してコンパイルします.Makefile
は、4つの主要コンポーネントを含む.(読者のために端末フォントの大きさを育成し、注釈の親近感を加える)
上記の構成から除外されました.
EXE : function.o main.o
gcc -o EXE function.o main.o
このコードはマクロの真下に追加する必要があります.次に、これらの構成を見てみましょう.よく使われる文字に名前を付けるのは、CかC++の前処理部分と考えられます!
Makefile
が書き終わった以上、本格的なコンパイルを始めましょう.端末を開き、
make
を入力すると、Makefile
の内容に従ってコンパイルされ、ターゲットファイルおよび実行可能ファイルが順次作成される.しかし、このように終わるのはまだ足りないようですね.はい、fanytargetについてはまだ説明していません.これは、ターゲットの位置にあるが、コンパイルするファイルではない偽のターゲットに直訳することを意味します.では、どこで使われているのか調べてみましょう.
こう書いてあります
clean
という偽の目標を指定しましたよね?make
の後に貼り付けてコマンドラインを実行すると、clean
と書かれたrecipeのrm *.o EXE
が実行されます.次のようになります.つまり、必要に応じて呼び出され、使用するコマンドの名前を付けることができます.整理する
Reference
この問題について([Make&MakeFile]C/C++の構築), 我々は、より多くの情報をここで見つけました https://velog.io/@sunmangul123/Make-Makefile-CC-빌드해보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol