Linux中makefile项目管理
一、makefile的编写:一个规则 两个函数 三个变量
1. 一个规则
三要素: 目标, 依赖, 命令
目标:依赖
命令
1) 第一条规则是用来生成终极目标的规则
1>. 如果规则中的依赖不存在, 向下寻找其他的规则,
2>. 更新机制: 比较的是目标文件和依赖文件的时间
2. 两个函数
1) 查找指定目录下, 指定类型的文件
src=$(wildcard ~/aa/*.c)
2)匹配替换函数
obj=$(patsubst %.c, %.o, $(src))
3. 三个自动变量
1)$<: 规则中的第一个依赖
2) $^: 规则中的所有依赖
3)$@: 规则中的目标
只能在规则中的命令中使用
4. 模式规则
%.o:%.c
gcc -c $< -o $@
子目标和终极目标的关系:
更新目标的原则:
3、makefile中变量的使用
例如:
app:main.o sub.o mul.o
gcc main.o sub.o mul.o -o app
gcc $^ -o $@
%.o:%.c
gcc -c $< -o $@
makefile中的自动变量
$<: 规则中的第一个依赖
$@: 规则中的目标
$^: 规则中的所有依赖
只能在规则的命令中使用
Linux中makefile项目管理相关推荐
- linux make项目管理器,Linux中makefile项目管理
一.整体大纲 二.makefile的编写 一个规则 两个函数 三个变量 1. 一个规则 三要素: 目标, 依赖, 命令 目标:依赖 命令 1) 第一条规则是用来生成终极目标的规则 a. 如果规则 ...
- linux中makefile高级用法--makefile调用makefile
一.介绍 在大型项目中,makefile调用makefile很常见,也很方便,这里给出调用方法 二.实例 1.代码树 app_top下,有顶层makefile和编译工具的设置文件Rules.make, ...
- linux下Makefile中包含有shared library动态链接库文件时候的简单例子
如果不知道什么是makefile,可以首先看我的另一篇博客: linux下Makefile的简单例子及解释 http://www.cnblogs.com/lihaozy/archive/2012/08 ...
- 在Linux中制作实用程序(MakeFile)
Hey folks, have you ever used IDEs? Most probably, yes. So what's your favorite one? Geany, CodeBloc ...
- 如何在Linux kernel Makefile中添加宏定义
如何在Linux kernel Makefile中添加宏定义: CFLAGS_object.o += -DMACRO_NAME 在编译object.o时定义宏MACRO_NAME,在kernel中添加 ...
- Linux内核中makefile有什么作用?深入解析makefile工作过程和原理
Table of Contents Makefile 中的变量 常用的变量有以下几类: 1) 版本信息 2) CPU 体系结构:ARCH 3) 路径信息:TOPDIR, SUBDIRS 4) 内核组成 ...
- linux未找到make命令,linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法)...
linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法) 发布时间:2020-09-15 04:09:36 来源:脚本之家 阅读:375 ...
- linux中的makefile文件
Linux里Makefile是什么?它是如何工作的? 一篇关于makefile是什么及其工作原理的文章,很受用. 原文链接:https://www.jb51.net/article/147793.ht ...
- Linux中源码包的管理
什么是开放源码,编译程序和可执行文件 开放源码:就是程序代码,写给人类看的程序语言,但机器不认识,所以无法执行: 编译程序:将程序代码转译成为机器看得懂的语言: 可执行文件:经 ...
最新文章
- pypy解释器提高python的效率之安装pypy
- php 挂机,用php实现qq挂机
- 关于java自动生成一个tostring-json,解决hibernate框架,每次全属性输出,的数据动态且限制对象的属性书写到前端,使用模板!
- iphone安装Deb文件
- kmeans算法中的sse_聚类算法入门:k-means
- Win10系列:VC++ 定时器
- 重大变动:OpenCV拟更改授权协议!
- 维特比算法Viterbi Algorithm
- 浅谈TCP/IP网络编程中socket的行为
- 中控智慧指纹采集器live20R用C二次开发,导入开发包时报错“HANDLE未定义”之类的错误
- 福州船政计算机专业多少钱,福建船政交通职业学院怎么样排名多少?特色专业?录取分数线及收费...
- 天天打排位,你知道王者荣耀的皮肤怎么测试吗?
- 我们应如何度过自己的大学生活?
- Tensorflow 2.X h5转pb
- JVM:JVM常见参数配置
- 【Python】文件操作(创建 | 读写 | 保存 | 文件名)
- php 自动关键词,php实现自动获取生成关键词功能
- 如何解决PS“不能完成请求,因为意外的遇到文件尾”?
- 曾国藩:人最大的差距,是见识和格局
- 大数据开发之Hive篇18-Hive的回收站