GNU 的 make 可以自动推导文件以及文件依赖关系后面的命令。因此,我们就没必要在
每个 .o 文件后都写上类似的命令, make命令会自动识别,并进行推导命令。

当make命令看到一个 .o 文件,它就会自动把 .c 文件加在依赖关系中,例如make找到main.o,就可以推导出main.c就是main.o的依赖文件,并且推导出要执行的命令gcc -c main.c。所以,我们的makefile文件可以表达得更简单些。
旧的(不用推导):

OBJECTS = main.o hello.o
app:$(OBJECTS)gcc -o app $(OBJECTS)
main.o:main.c hello.hgcc -c\main.c
hello.o:hello.c hello.hgcc -c hello.c
clean:rm app $(OBJECTS)

新的(需要推导):

OBJECTS = main.o hello.o
app:$(OBJECTS)gcc -o app $(OBJECTS)
main.o:hello.h
hello.o:hello.h
clean:rm app $(OBJECTS)

对新的makefile文件执行一下make命令:

~/Desktop/mydir$ make
cc    -c -o main.o main.c
cc    -c -o hello.o hello.c
gcc -o app main.o hello.o
~/Desktop/mydir$ ls
app  hello  hello.c  hello.h  hello.o  main.c  main.o  makefile
~/Desktop/mydir$ ./app
Hello world88!

谢谢阅读!

make命令的自动推导相关推荐

  1. Makefile_05:Make命令的自动推导

    Make命令的自动推导 一.简化Makefile GNU 的 make 很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必 要去在每一个[.o]文件后都写上类似的命令,因为,我们的 ...

  2. 2.自动推导、.PHONY

    自动推导规则 在用make编译.c源文件时,编译.c源文件规则的命令可以不用明确给出. 只给出需要重建的目标文件名(一个.o文件),make会自动为它寻找合适的依赖文件(对应的.c文件.对应指后缀名之 ...

  3. iOS 命令行自动打包 (archive)

    原文链接:http://www.jianshu.com/p/2247f76404eb iOS 开发工程师在测试修复 bug 的过程中,一般会存在频繁打包的情况,如果一步步在 xcode 中点击 arc ...

  4. C++17尝鲜:类模板中的模板参数自动推导

    目录 模板参数自动推导 示例 自定义类模板中的应用 Automatic deduction guides(自动推断向导) 模板参数自动推导 在C++17之前,类模板构造器的模板参数是不能像函数模板的模 ...

  5. python3手机脚本教学_python+adb命令实现自动刷视频脚本案例

    python小白第一次发博客,自己自学了一下写了一个demo,可能语法啥的不够标准,毕竟没有真正学过python 主要用到的是 import os #os包用于运行cmd命令 adb shell #这 ...

  6. 配置管理小报100329:脚本中ftp命令无法自动输入密码怎么办?

    为什么80%的码农都做不了架构师?>>>    Ø         知识点:      作者:王×××(zbwangjian@×××.cn) 脚本中ftp命令无法自动输入密码怎么办? ...

  7. android studio shell 命令行自动打包(mac 平台)

    android studio shell 命令行自动打包(mac 平台) 作者 CrazySongHang 关注 2015.04.10 22:56* 字数 494 阅读 4165评论 1喜欢 2 如果 ...

  8. python脚本案例-python+adb命令实现自动刷视频脚本案例

    python小白第一次发博客,自己自学了一下写了一个demo,可能语法啥的不够标准,毕竟没有真正学过python 主要用到的是 import os #os包用于运行cmd命令 adb shell #这 ...

  9. Jetson Nano非GUI界面自动登录设置(CLI命令行自动登录)

    为了能最大效率的利用Jetson Nano的显存,我们可以摈弃掉Jetson Nano的GUI图形界面功能,这样,Jetson Nano就可以有更多的资源用来做AI推理运算了(所有对Jetson Na ...

最新文章

  1. 第十五届全国大学生智能车竞赛车模技术检查表格
  2. react native 之自定义顶部导航栏,实现标题居中可控
  3. Druid:数据库连接池实现技术
  4. iOS启动屏 ➕ 闪屏的方法
  5. CNCF 官方大使张磊:什么是云原生?
  6. m5310模组数据上传至onenet_NBIOT模组M5310接入中国移动物联网开放平台示例文档
  7. SQLAlchemy 一些基本操作
  8. 苹果企业证书_IOS福利9月15日苹果企业证书已更新!重新下载即可!
  9. python 折线图中文乱码_彻底解决 Python画图中文乱码问题--Pyplotz组件
  10. 照搬照做无疑了!2019新iPhone系列确定“浴霸摄像头”
  11. 连通性问题--Algorithms IN C读书笔记
  12. 我在使用Next.js, Antd, @zeit/next-css时遇到的一些问题
  13. java 微信网页授权_java微信网页授权获取openid(第十四课)
  14. python读取mt4数据_将国内A股数据接入MT4平台
  15. 游戏制作之路-unity捕鱼达人(一 开始以及加载界面的制作)
  16. Linux 目录初识
  17. HDFS物理块存储大小
  18. GBA的内存其实很大
  19. 算法分析:时间和空间复杂度
  20. “独裁”的张小龙和他的微信帝国诞生记

热门文章

  1. 阿里云大学Apache Flink大数据学习笔记
  2. HTML5 SVG画在直线中间的箭头
  3. 01-JavaSE【封装、继承、抽象】
  4. TI OMAPL处理器介绍(二)
  5. Mybatis学习笔记之---动态sql中标签的使用
  6. Expect基础使用
  7. Mendeley下载安装,导出参考文献以及自定义参考文献
  8. 【PAT】1005 Spell It Right (20 分)——字符串处理
  9. python画一个点_python – 如何绘制一个数据点?
  10. 计算机作业批改反思,作业批改心得_教学反思.doc