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”

这样也可以生成一个可执行程序。

  • 1
  • 2
  • 下一页

相关内容