歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux下C編程裡的makefile

假設我們有下面這樣的程序:

 

  1. /*main.c*/  
  2. #include "mytool1.h"   
  3. #include "mytool2.h"   
  4. #include <stdio.h>   
  5.   
  6. int main(int argc,char *argv[])  
  7. {  
  8.         mytool1_print("hello");  
  9.         mytool2_print("hello");  
  10. }  
  11. /*mytoo1.h*/  
  12. #ifndef _MYTOOL1_H   
  13. #define _MYTOOL1_H   
  14. void mytool1_print(char *print_str);  
  15. #endif   
  16. /*mytool1.c*/  
  17. #include "mytool1.h"   
  18.   
  19. void mytool1_print(char *print_str)  
  20. {  
  21.         printf("This is mytool1 print %s\n",print_str);  
  22. }  
  23. /*mytool2.h*/  
  24. #ifndef _MYTOOL2_H   
  25. #define _MYTOOL2_H   
  26. void mytool2_print(char *print_str);  
  27. #endif   
  28. /*mytool2.c*/  
  29. #include "mytool2.h"   
  30.   
  31. void mytool2_print(char *print_str)  
  32. {  
  33.         printf("This is mytool2 print %s\n",print_str);  
  34. }  

我們可以這麼編譯鏈接這個程序:

gcc -c main.c

gcc -c mytool1.c

gcc -c mytool2.c

gcc -o myprint main.o mytool1.o mytool2.o

這樣之後只需執行命令"./myprint",便可以簡單的運行這個程序。

但是當我們修改了其中的一個文件之後是不是還要不厭其煩的輸入上面的編譯命令?

為了解決這一問題,我們有個好方法去解決,那就是編寫一個makefile文件,用make命令去編譯上面的程序。

執行命令"vim Makefile”

編寫如下代碼:

 

  1. main: main.o mytool1.o mytool2.o  
  2. [Tab]gcc -o myprint main.o mytool1.o mytool2.o  
  3. main.o: main.c mytool1.h mytool2.h  
  4. [Tab]gcc -c main.c  
  5. mytool1.o: mytool1.c mytool1.h  
  6. [Tab]gcc -c mytool1.c  
  7. mytool2.o: mytool2.c mytool2.h  
  8. [Tab]gcc -c mytool2.c  

保存後執行命令“make -f Makefile”

這樣也可以生成一個可執行程序。

Copyright © Linux教程網 All Rights Reserved