帶子目錄的makefile文件

1。建立文件夾 dir
  dir中含 三個文件夾 include source pro 和makefile文件。
  include 中包含 hai.h頭文件。
  source 中包含 hello.c文件。
  pro 中包含 haia.c haib.c文件。
  
  makefile文件內容有兩種寫法:
  makefile 第一種寫法:
  //*********************
  CC=gcc #選擇編譯器類型爲gcc
  VPATH= include : pr : source #列明文件存放目錄
  
  hello: hello.o haia.o haib.o
   $(CC) -o hello hello.o haia.o haib.o
  hello.o:hello.c hai.h
   $(CC) -c hello.c
  haia.o: haia.c hai.h
   $(CC) -c haia.c
  haib.o: haib.c hai.h
   $(CC) -c haib.c
  .PHONY: clean
  clean:
   rm hello $(obj)
  //*************************
  
  
  
  makefile第二種寫法(簡化版):
  //********************************
  CC=gcc #選擇編譯種類
  
  VPATH= include : pr : source #在include pr source 三目錄下查找文件
  
  obj= hello.o haia.o haib.o #
  
  hello:$(obj) #
   $(CC) -o hello $(obj)
  
  $(obj): hai.h
  
  .PHONY: clean
  clean:
   rm hello $(obj)
  //**********************************
  
  
  hai.h文件內容爲:
  //************************
  #include "stdio.h"
  extern void haiprinta();
  extern void haiprintb();
  //****************
  
  hello.c內容爲:
  //****************
  #include "../include/hai.h"
  
  int main(void)
  {
  haiprinta();
  haiprintb();
  return 0;
  }
  //**************
  
  haia.c內容爲:
  //************
  #include "../include/hai.h"
  
  void haiprinta()
  {
  printf("hai aaaaaaaaaa\n");
  }
  //**************
  
  
  haib.c內容爲:
  //**************
  #include "../include/hai.h"
  
  void haiprintb()
  {
  printf("haib bbbbbbbbbbbbbb\n");
  }
  //*******************
  
  2。make 調用makefile生成 可執行文件 hello
  
  3. 運行 hello顯示打印結果:
  [HAI@localhost wulong]$ ./hello
  hai aaaaaaaaaa
  haib bbbbbbbbbbbbbb
  [HAI@localhost wulong]$
  
  到此結束,恭喜!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章