当前位置: 首页 > news >正文

make和makefile

make和makefile

当输入make时,make会在当前目录下找名字叫“Makefile”或“makefile”的文件

操作一件事情,必须有依赖关系加依赖方法,makefile本质上是依赖关系加依赖方法的集合,依赖关系就是目标文件与依赖文件,依赖方法可以是任意指令,对应行加上@显示器不打印对应指令(关闭回显),加上#可以注释对应行,必须以tab键开头

makefile的第一个目标文件是缺省形成的,实现其他目标文件需要make加对应文件名

.PHONY开头是声明一个伪目标,要形成这个伪目标,就必须执行其依赖方法

对于目标文件,有时候需要重新编译,有时候不需要,原因是对比了源文件和可执行程序的Mtime来实现的

文件包括文件内容和属性

stat可以查看文件的详细信息:Access时间不具有太大意义

当可执行程序的Mtime时间比源文件新时,不会重新编译,反之则会进行编译,但是.PHONY的目标文件对应的依赖方法总是被执行的

%为makefile语法中的通配符,%.c是当前目录下的所有.c文件,展开到依赖列表中

gcc -c $<是右侧的依赖文件依次替换$<,gcc -c $^是将$^一次性替换为所有依赖文件,$@是目标文件形成的内容

makefile中也可以定义变量

一次形成两个可执行程序,充分利用了PHNOY的特性


http://www.mrgr.cn/news/57959.html

相关文章:

  • 梦结束的地方 -- 爬楼梯
  • 论文阅读(二十六):Dual Attention Network for Scene Segmentation
  • 快速拆分kml/KMZ得三种方法
  • 全方面熟悉Maven项目管理工具(三)认识mvn的各类构建命令并创建、打包Web工程
  • 【排序】——2.快速排序法(含优化)
  • PCL学习——点云基础
  • 文件操作(1) —— 文件基础知识
  • 当并发控制遇上餐厅!让你彻底搞懂MySQL脏读、不可重复读、幻读和丢失更新
  • ppt怎么一键抠图?3个实用技巧,轻松做出高颜值PPT!
  • 时序知识图谱学习——思维框图总结
  • 力扣 —— 分发糖果
  • geoserver解析元数据获取图层相关参数
  • 零基础Java第九期:一维数组(二)和二维数组
  • Java题集练习3
  • 一文带你入门Flink CDC
  • 十、Linux 故障排除专业案例分享
  • java抽象类和接口
  • 【Fargo】14: sockaddr_in 、 sockaddr 、sockaddr_storage 区别及转换
  • 论文思路 标书 水文
  • css知识点梳理
  • Zypher Network Layer3 主网上线,“宝藏方舟”活动是亮点
  • 深度学习_循环神经网络_预测平安中国股价(文末附带数据集下载链接, 长期有效, 如果有大佬愿意帮忙, 我先在这磕一个,感谢)
  • Vue弹窗用也可以直接调用Js方法了
  • 博饼代码【Python】
  • V4L2驱动框架
  • Unreal Engine5安装Niagara UI Renderer插件