Linux操作系统make工具和makefile

一、make工具和makefile文件的引入

        当源码文件比较多的时候就不适合通过直接输入gcc命令来编译,这时候就需要自动化编译工具。

        make:一般说GNU Make,是一个软件,用于将源代码文件编译为可执行文件的二进制文件,make工具主要用于完成自动化编译提高编译效率make工具编译的时候需要makefile文件提供编译文件。

        Makeflie:make工具所使用的文件,Makefile指明了编译规则。

二、编写C程序

        编写一个小型的含有多个.c文件的工程项目。如一个简易的计算a+b的工程.

//main.c文件
#include <stdio.h>
#include "input.h"
#include "calcu.h"

int main(int *argc,char *argv)
{
 int a,b,num;
 input_int(&a,&b);
 num=calcu(a,b);
 printf("%d+%d=%d\r\n",a,b,num);
 return 0;
}
//input.c文件
#include <stdio.h>
#include "input.h"
void input_int(int* a,int* b)
{
 printf("请输入两个数据");
 scanf("%d %d",a,b);
 printf("\r\n");
}
//calcu.c文件
#inclue <stdio.h>
#include "calcu.h"
int calcu(int a,int b)
{
 return a+b;
}
//input.h文件
#ifndef __INPUT__H
#define __INPUT__H


void input_init(int* a,int* b);

#endif
//calcu.h文件
#ifndef __CALCU__H
#define __CALCU__H

int calcu(int a,int b);

#endif

        上述文件如果使用gcc编译器直接编译,在修改过一个文件后将需要重新编译整个工程文件,所以为了方便和提高编译效率我们需要使用make工具。

        要想使用马可工具得先编写好MakeFile文件。

三、MakeFile语法

1.MakeFile规则格式

//如上面工程文件所示编写规则:
main:main.o input.o calcu.o
    gcc -o main main.o input.o calcu.o

        这条规则的目标是 main,main.0、input.o和 calcu.o 是生成 main 的依赖文件,如果要更新目标 main,就必须要先更新它的所有依赖文,如果依赖文件中的任何一个有更新,那么目标也必须更新,“更新”就是执行一遍规则中的命令列表。

        命令列表中的每条命令必须以TAB键开始,不能使用空格!!!

        make命令会为MakeFile中的每一个以TAB开始的命令创建一个Shell进程去执行。

   main:main.o input.o calcu.o
       gcc -o main main.o input.o calcu.o
   main.o:main.c
       gcc -c main.c
   input.o:input.c
       gcc -c input.c
   calcu.o:calcu.c
       gcc -c calcu.c
   
  clean:
      rm *.o
      rm main
             

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值