makefile 文件编写

makefile 文件编写-------新手篇

1.什么是makefile?

  Makefile是一种配置文件,Makefile一个工程中的源文件不计其数,其按类型,功能,模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至进行更复杂的功能操作。makefile像一个shell脚本一样,可以执行操作系统的命令。

2.makefile 编写规则?

一般情况写makefile文件包含三部分:

(1)最终生成的目标文件

(2)生成目标文件的依赖文件

(3)清理

注:makefile文件编写有很多中方法,我在此文中只讲我经常使用的,也是最基础的,希望能够帮助新人很好的理解和编写makefile文件。

 

(1)最终生成的目标文件:(二进制文件)     依赖的.o文件

             执行生成目标文件的命令

(2)依赖文件(.o文件):                                  依赖文件(.o /  .c / .h 文件)

             执行生成依赖文件的命令

(3)清理 

 

例子:

 假如你有3个文件,一个测试函数 (main.c 文件),两个接口函数文件 (.c 和.h 文件)

------------------------------------------------

main.c

-------------------------

#include<stdio.h>

#include"add.h"

int main()

{

  int  Inum1 = 1;

  int  Inum2 = 2;

  int  Isum = 0;

  Isum = add (Inum1, Inum2);

  printf ("%d"\n, Isum);

  return 0;

}

-------------------------------------------------------------------------------

add.h

-----------------------------

#ifndef __ADD_H__

#define __ADD_H__

int add (int a, int b)

#endif

------------------------------------------------------------------------------

add.c

----------------------------

#include"add.h"

int add (int a, int b)

{

  return a+b;

}

-------------------------------------------------------------------------------------------------------

 

makefile :

-------------------------------

res : add.o main.o

  gcc - o res add.o main.o

add.o: add.h

  gcc -c add.c

main.o: main.c add.h

  gcc -c main.c

clean:

  rm -rf *.o

  rm -rf res

 

makefile 编写有很多种方式,我在给出一种,供新人学习,我说的不一定都准确,大家也对比其他的参考学习。

 

--------------------------------

makefile

---------------

CC = gcc 

FLAG = -Wall  -g  -02

ALL:

  $ (CC) $ (FLAG) -c add.c

  $ (CC) $ (FLAG) -c main.c

  $ (CC) $ (FLAG) - o res add.o main.o

clean:

  rm -rf *.o

  rm -rf res

 

 

 

 

 

posted @ 2017-03-18 21:46  杰思  阅读(187)  评论(0)    收藏  举报