make命令的自动推导
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命令的自动推导相关推荐
- Makefile_05:Make命令的自动推导
Make命令的自动推导 一.简化Makefile GNU 的 make 很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必 要去在每一个[.o]文件后都写上类似的命令,因为,我们的 ...
- 2.自动推导、.PHONY
自动推导规则 在用make编译.c源文件时,编译.c源文件规则的命令可以不用明确给出. 只给出需要重建的目标文件名(一个.o文件),make会自动为它寻找合适的依赖文件(对应的.c文件.对应指后缀名之 ...
- iOS 命令行自动打包 (archive)
原文链接:http://www.jianshu.com/p/2247f76404eb iOS 开发工程师在测试修复 bug 的过程中,一般会存在频繁打包的情况,如果一步步在 xcode 中点击 arc ...
- C++17尝鲜:类模板中的模板参数自动推导
目录 模板参数自动推导 示例 自定义类模板中的应用 Automatic deduction guides(自动推断向导) 模板参数自动推导 在C++17之前,类模板构造器的模板参数是不能像函数模板的模 ...
- python3手机脚本教学_python+adb命令实现自动刷视频脚本案例
python小白第一次发博客,自己自学了一下写了一个demo,可能语法啥的不够标准,毕竟没有真正学过python 主要用到的是 import os #os包用于运行cmd命令 adb shell #这 ...
- 配置管理小报100329:脚本中ftp命令无法自动输入密码怎么办?
为什么80%的码农都做不了架构师?>>> Ø 知识点: 作者:王×××(zbwangjian@×××.cn) 脚本中ftp命令无法自动输入密码怎么办? ...
- android studio shell 命令行自动打包(mac 平台)
android studio shell 命令行自动打包(mac 平台) 作者 CrazySongHang 关注 2015.04.10 22:56* 字数 494 阅读 4165评论 1喜欢 2 如果 ...
- python脚本案例-python+adb命令实现自动刷视频脚本案例
python小白第一次发博客,自己自学了一下写了一个demo,可能语法啥的不够标准,毕竟没有真正学过python 主要用到的是 import os #os包用于运行cmd命令 adb shell #这 ...
- Jetson Nano非GUI界面自动登录设置(CLI命令行自动登录)
为了能最大效率的利用Jetson Nano的显存,我们可以摈弃掉Jetson Nano的GUI图形界面功能,这样,Jetson Nano就可以有更多的资源用来做AI推理运算了(所有对Jetson Na ...
最新文章
- 第十五届全国大学生智能车竞赛车模技术检查表格
- react native 之自定义顶部导航栏,实现标题居中可控
- Druid:数据库连接池实现技术
- iOS启动屏 ➕ 闪屏的方法
- CNCF 官方大使张磊:什么是云原生?
- m5310模组数据上传至onenet_NBIOT模组M5310接入中国移动物联网开放平台示例文档
- SQLAlchemy 一些基本操作
- 苹果企业证书_IOS福利9月15日苹果企业证书已更新!重新下载即可!
- python 折线图中文乱码_彻底解决 Python画图中文乱码问题--Pyplotz组件
- 照搬照做无疑了!2019新iPhone系列确定“浴霸摄像头”
- 连通性问题--Algorithms IN C读书笔记
- 我在使用Next.js, Antd, @zeit/next-css时遇到的一些问题
- java 微信网页授权_java微信网页授权获取openid(第十四课)
- python读取mt4数据_将国内A股数据接入MT4平台
- 游戏制作之路-unity捕鱼达人(一 开始以及加载界面的制作)
- Linux 目录初识
- HDFS物理块存储大小
- GBA的内存其实很大
- 算法分析:时间和空间复杂度
- “独裁”的张小龙和他的微信帝国诞生记