Linuxのベース(02)を作成するためのメイクファイルと使用

メイクファイルは、現在のファイルの生成.oファイルや実行可能で.cファイルをスクリプトファイルを生成しています

SRC = $(ワイルドカード* .C)
OBJS = $(patsubst%.cファイル、%の.o、$(SRC))
CC = gccの
FLAG = -g - 静的 
LIB   =  
DEFS = 
INCLUDE = 
TARGET   = のhelloworld 
$(TARGET): $(OBJS)
    $(CC)$(FLAG)$(DEFS)$ ^ - O $ @ $(LIB)
.PHONY:
クリーン:
    RM -rf * $(TARGET)の.o

 

GCC -g -gのhello.c -oハローバック依存-oファイルは、オブジェクトが生成されるに戻って
、GCC -g -oハローhello.cの上記の位置の変化もたらすことができる  
  連結せずにコンパイル-cを
  -o生成されたファイルを.I .Sの.oが.c
  文字テーブルと-g生成プログラム
  -D高速制御コードが実行されるよう#ifdefine役割
  -Iを指定することができますが、他の場所のような文書が含ま見つける:$ CC -c -Iは/ usr /ローカルを/インクルードは-Iは/ opt /インクルードがhello.cに含ま含ま
  -Lリンクライブラリ指定した検索ディレクトリを、名前-l(小文字のL)はリンクライブラリが指定された
  警告は、アップグレード-Wall
  バック-g ...何も-g後ろダイナミックリンクライブラリを追加することではありません-static静的

内部のmakefileコード
  ターゲットファイル:依存関係
  hello.o:hello.cの
  GCC -gのhello.c -o hello.o
#変数
  1変数定義
    OBJ =ファイル名の変数が追加されていない
    OBJを:=追記変数
    OBJ + =追加
  2.変数
    $}または{$()の変数を使用して
  3ワイルドカード
    %*?%*全く?3などの1つのマッチは123133143を発見
    標的を表す@ $するファイル
    代表的依存関係を$ ^
    $ <表しを依存関係ファイル
のターゲットを生成するためには、xxx.oのxxxx.oに依存するが、何の.oファイルには、次の世代に世代をスキップしていないし、その後の.oターゲットを実行し、再帰的になるほとんど(国境での到着はA実行されます)
  

対象:= xxx.o xxxx.o 
$(ターゲット):$(オブジェクト
    $(CC)$(FLAG)$ ^ - O $ @
%の.o:%.cの
    $(CC)$(FLAG)$ ^ - Oの$ @の
.PHONY:
クリーン:
    RM -rf *の.o $(ターゲット)

 


暗黙のルールは、コンパイラを使用します

対象:= xxx.o xxxx.o 
$(ターゲット):$(オブジェクト
    $(CC)$(FLAG)$ ^ - $ @を0 
.PHONY:
クリーン:
    RM -rf * .oの$(ターゲット)

 

4.暗黙のルールあなたは.oファイルを生成する場合は、最初の.c必要があります- > .I - > .Sは、インテリジェントコンパイラを生成するためにの.oしかし、プロセスの途中を通してあなたを助ける
5.機能

// $として(関数名の関数のパラメータ): 
SRC = $(ワイルドカードの* .c)     // ワイルドカードは以下の現在のファイル内のファイルを抽出 
(。patsubst%以下の.C、%のO、$(SRC))OBJS = $を     / / patsubst文字列置換機能が.oの.CにSRCに置き換えるために 
CC = GCC 
FLAG = - G 
DEFSとは =  
LIB = -ltermcap // -lpthread     // -L /ワード/ abc.so 
インクルードはINCLUDE = 
$(ターゲット): $(オブジェクト
    $(CC)$(FLAG)$ ^ - O $ @ $(LIB)
偽の:
クリーン:
    RM -rf * .oの$(ターゲット)

 


#メイクファイルを使用して複数のファイル
  のMakefileの先頭に、Makefile.buildにプログラムのトップディレクトリは、ターゲットを変更し、OBJ-Y修飾
  し、各サブファイルにメイクファイルをOBJ-Y + =%を作成する。O

おすすめ

転載: www.cnblogs.com/yxnrh/p/11490811.html