Linux makefile简单说明

make是一个非常重要的编译工具,它将一个大型的项目分成若干个模块,可以帮助我们很清晰快捷的整理源文件。
安装:

apt-get install make

下面将用一个例子来表示:
hello.c文件通过调用max函数来得到两个数中的较大者

root@xhj-2:/usr/linuxProgramming/chapter3/les2# cat hello.c
#include <stdio.h>
#include "max.h"
int main(){
    int a1=33;
    int a2=21;
    int maxNum=max(a1,a2);
    printf("the max value is %d",maxNum);
    return 0;
}

max.c文件定义了得到两个数中的较大者的函数

root@xhj-2:/usr/linuxProgramming/chapter3/les2# cat max.c
int max(int a,int b)
{
    if(a>b) return a;
    else return b;
}

max.h定义了max函数的头文件

root@xhj-2:/usr/linuxProgramming/chapter3/les2# cat max.h
int max(int a,int b);

综上可知,他们相互之间有依赖关系,hello.c通过max.h文件调用了max.c中定义的max函数。
下面将给出在本例中的make file。

root@xhj-2:/usr/linuxProgramming/chapter3/les2# vim Makefile 

  1 # this is make file
  2 hello.out:max.o hello.c
  3         gcc max.o hello.c -o hello.out
  4 max.o:max.c
  5         gcc -c max.c

在make file中,实际上是一个自下而上的过程。在上面的例子中,第一行是注释,讲了这个文件的作用。正文的第一行的hello.out是我们最终要得到的文件,它是通过max.o和hello.c文件生成的,生成的命令就是第三行的“gcc max.o hello.c -o hello.out”。而max.o的生成需要max.c,也就是第四行,命令处在第五行。

**需要注意的是:**每一条编译的命令前面,例如第三行和第五行,前面都需要一个tab的空格。
在Makefil编写结束后,执行make语句就可以进行自动编译。原因:在默认的方式下,也就是我们只输入 make 命令。那么make会在当前目录下找名字叫“Makefile”或“makefile”的文件。

root@xhj-2:/usr/linuxProgramming/chapter3/les2# make 
gcc -c max.c
gcc max.o hello.c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值