makefile的使用总结

学习了cp命令,mv命令,rm命令,cat命令,wc命令,chmod命令,ln命令以及一些常用命令。接着开始了Linux下C语言开发环境的学习。主要学习了编辑器Vi,编译器gcc,调试器gdb还有makefile的使用。

在学习中我最感兴趣的就是makefile,因为它体现了人性化以及智能的一面,为程序员节省了很多不必要的程序运行时间,以下是我对makefile的一些总结。

1.一个普通C代码的正常情况下的编译

上图只是一个参考,因为操作还不熟练,下面给出正确代码:

mkdir 4make

cd 4make

mkdir 1make

cd 1make

vim operator.c

gcc operator.c -o 1

./1

operator.c内容:

 

#include <stdio.h>

 

int add(int a,int b)

{

    return a + b;

}

 

int sub(int a,int b)

{

    return a - b;

}

 

int main()

{

    int a = 3;

    int b = 2;

 

    printf("%d %d\n",add(a,b),sub(a,b));

 

    return 0;

}

2.当有多个文件的C代码时的传统编译

add.c内容:

int add(int a,int b)

{

    return a + b;

}

 

sub.c内容:

int sub(int a,int b)

{

    return a - b;

}

 

operator.c内容:

#include <stdio.h>

 

int main()

{

    int a = 3;

    int b = 2;

 

    printf("%d %d\n",add(a,b),sub(a,b));

 

    return 0;

}

这种情况只有三个代码文件,编译时哪怕有四个步骤运行起来也很快,但如果一个大的工程里分给很多不同的人来做,届时会有几十个甚至上百个文件,当其中一个文件发生更新时,程序员又需要把代码敲一遍,而且已更新的文件连带着未经过改变的文件进行着编译的四个步骤,这样就显得很不智能化,因此第三种情况我们就要使用makefile来解决这个问题。

3.当有多个文件的C代码时使用makefile

makefile里的内容:

由于makefile这样写,不能直观的知道当其中有文件更新时,每次make的时候都做了哪些工作,所以下面进行第四种情况。

4.

makefile中的内容:

可以看出当更新过add.c之后,make时只会将与add.c有关的命令再运行一遍,而其他文件无须再进行一次编译,省去了很多时间也变得更智能了。

但其实make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中。

而且makefile中有变量的使用:

OBJECTS = sum.o sub.o operator.o             #定义变量

$(OBJECTS)                                             #使用变量

所以makeflie有最终写法。

5.

Makefile中的内容:

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值