メイク
利点:
プロジェクト全体の容易な管理
1.make
GCC - 特定の規則に従ってコードをコンパイルするコンパイラ
メイク - ビルダーを運ぶのlinux
メイクファイルでのルールのビルド
2.メイクファイルのファイル名
- メイク
- Makefileの
ルール3.makefile
ccの-oアプリBC gccの交流
- 三つの部分:目標、依存関係、コマンド
ターゲットアプリ
依存交流BCのCC
ccの-oアプリBCコマンドgccの交流
目標:依存性
(タブインデント)コマンド
アプリ:交流BCのCC
ccの-oアプリBC gccの交流
書かれ4.makefile
最初のバージョン
短所:
非効率、ファイルを変更し、すべてのファイルがすべて再コンパイルされます
第二版
ワークス
依存性は存在しません。
ダウンサブルールを検索し、依存関係が探している生成、および規則の実施のためのルールが順番に存在する場合
更新する必要があるかどうかを判断するために依存が存在、
原理:目標時間>時間依存
更新:逆に
短所:冗長性
3番目のバージョン
- カスタム変数:
OBJ = AOのBOのコ(OBJ変数名、定義可能)
OBJ = 10
変数の値:AA = $(OBJ)
-makefile自身の変数:大文字(すべて大文字形式)
CPPFLAGS(指定されたヘッダファイル)
CC
- 自動変数
目標ルール:@ $
$ <:最初に依存ルール
$ ^:ルールすべての依存関係
自動変数は、ルールのコマンドで使用することができます
パターン・マッチング:
%の.o:%C
まず:framwork.oなし
main.o:main.cの
gccの-c main.cの-o main.o
第二:add.o
add.o:add.c
gccの-c add.c -o add.o
短所:比較的貧しいポータビリティ
第四版
* Makefileのすべての機能は、値を返します
*指定されたディレクトリを検索し、ファイルの種類を指定します。
SRC = $(ワイルドカード./*.c)
*試合を交換してください
obj = $(patsubst %.c, %.o, $(src))
短所:プロジェクトをクリーンアップすることはできません
第五版
レッツ・メイクは、究極の目標は、ターゲットを生成することではありません
メイクターゲット名
クリーンアッププロジェクトのルールを書きます
掃除:
RM * .oのアプリ
-(符号) 作用:忽略执行失败的命令,让程序继续向下执行。
当前语句执行失败后, 继续向下执行
- rm $(obj) $(out) -f
声明伪目标 跳过判断环节,直接执行
.PHONY: 生成的伪目标名
.PHONY: clean
-f 强制执行
命令前加 -
忽略执行失败的命令,继续执行
.PHONY: clean
clean:
-rm -f $(obj) $(out)