标签:
通常在C语言程序开发中,尤其是大型项目的构建,我们不可能一个文件一个文件去编译,通常会编写Makefile文件使用make命令完成项目的编译构建;
如下:math项目是简单的计算那个数字大,哪个数字小,以及两个数字和的小程序。由max.c,min.c , sum.c 和main.c构成,分别如下:
max.c
#include <stdio.h> int max(int a,int b) { if(a>b){ return a; }else{ return b; } }
min.c
#include <stdio.h> int min( int a , int b ) { if( a > b ){ return b; }else{ return a; } }
sum.c
#include <stdio.h> int sum( int a ,int b ) { return a + b; }
main.c
#include <stdio.h> #include "max.h" #include "min.h" #include "sum.h" int main() { int a = 23; int b = 34; int maxNum = max(a,b); int minNum = min(a,b); int sumNum = sum(a,b); printf("the max number is :%d\n , the min number is :%d\n , sum is :%d\n",maxNum , minNum , sumNum); }
其依赖关系为:main.c 依赖 max.c,min.c,sum.c这三个文件
main.c中引入的.h文件为描述文件,比如max.h文件内容为
int max(int a ,int b);
所以要编译该项目,使用make方式需要编写Makefile文件;MakeFile文件如下
# this is a make file math.out:main.o max.o min.o sum.o gcc main.o max.o min.o sum.o -o math.out main.o:main.c gcc -c main.c max.o:max.c gcc -c max.c min.o:min.c gcc -c min.c sum.o:sum.c gcc -c sum.c
Makefile文件编译按照依赖关系自上向下降级编写。例如编译main.c需要依赖其余几个文件,则需要将其与几个文件逐一编译之后,再执行最上面的一句
gcc main.o max.o min.o sum.o -o math.out
需要注意的是:
Makefile文件中 gcc命令必须使用Tab键,不然编译期会报错
标签:
原文地址:http://my.oschina.net/huiger/blog/424533