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

linux--关于makefile

makefile文件

可以指定编译顺序,这样方便一个项目的多个文件要编译的挨个操作的麻烦。
makefile文件的命名:makefile 或者 Makefile 必须是这俩,系统才能识别

规则的书写语法如下:

一个makefile内可以有多个规则

目标:依赖a 依赖b ...
	命令(shell命令)

命令前面一定要插入制表符Tab

makefile文件的工作原理

  • 一般来讲下面的规则都是为第一条规则服务的
  • 先检查所需的依赖是否存在,不存在就查找下面是否有生成依赖的规则
  • 可以根据文件的时间更新目标,例如依赖的时间比生成过的目标晚,那么证明依赖更新过,会重新运行对应依赖的生成文件以及重新生成规则一的目标

关于makefile中的变量

自定义变量:
变量名=变量值
预定义变量:
AR:归档维护程序的名称,默认ar
CC:C编辑器的名称,默认cc
CXX:C++编辑器的名称,默认为g++
$@:目标的完整名称(包含其文件类型)
$<:第一个依赖文件的名称
$^:所有的依赖文件
获取变量的值的语法:
$(变量名)

示例:

app:main.c a.c b.c
	gcc -c main.c a.c b.c -o app
变为:
app:main.c a.c b.c
	$(CC) -c $^ -o $@

标题更厉害简化的写法,不用每一行每一行写文件的gcc -c 输入 输出

wildcard是patsubst函数
在这里插入图片描述

然后直接(红色是命令,黄色是输出):
在这里插入图片描述

相关文章:

  • 白话文实战OpenFeign
  • 基于opencv的 24色卡IQA评测算法源码-可完全替代Imatest
  • SpringBoot 集成 Caffeine 实现本地缓存
  • WPF创建自定义类和控件及打包成dll引用
  • 2.10 Playground Chat提示工程实战:从交互调试到企业级应用的全链路指南
  • 驱动开发、移植(最后的说法有误,以后会修正)
  • 【Apache Paimon】-- 16 -- 利用 paimon-flink-action 同步 kafka 数据到 hive paimon 表中
  • Linux环境下安装mkcert
  • Python--正则表达式
  • SAP-ABAP:SAP中REPORT程序和online程序的区别对比
  • Modbus通讯协议
  • YOLOv5-Seg 完全指南:从训练到后处理
  • 阅读论文笔记《Efficient Estimation of Word Representations in Vector Space》
  • YOLOV8的学习记录(二) yolo8的几个内置模型简介
  • RabbitMQ介绍以及基本使用
  • 小米平板怎么和电脑共享屏幕
  • c++--静态联编--动态联编
  • 动态库与静态库:深入解析与应用
  • CAS单点登录(第7版)12.密码管理
  • CANopen 基础
  • 2025上海科技节将于5月17日开幕,拟设6大板块专题活动
  • 美联储如期按兵不动,强调“失业率和通胀上升的风险均已上升”(声明全文)
  • 视频丨习近平主席专机抵达莫斯科,俄战机升空护航
  • 外交部回应中美经贸高层会谈:这次会谈是应美方请求举行的
  • 巴基斯坦军方:印度向巴本土及巴控克什米尔发射导弹
  • 涉个人信息收集使用问题,15款App和16款SDK被通报