GNU make 函数调用详解
需积分: 34 120 浏览量
更新于2024-08-10
收藏 1.45MB PDF 举报
"函数的调用语法-stc8h 系列单片机技术参考手册"
在 GNU Make 中,函数的调用语法是重要的概念,它允许我们利用内建的函数和自定义函数来处理 Makefile 中的任务。在单片机编程如 STC8H 系列中,Makefile 的正确编写能有效提升编译和链接流程的效率。下面将详细解释标题和描述中的知识点:
1. **函数调用语法**:
- 函数调用的格式通常写作 `$(FUNCTION ARGUMENTS)` 或 `${FUNCTION ARGUMENTS}`。这里的 `FUNCTION` 是指要调用的函数名称,可以是 GNU Make 提供的内建函数,例如 `$(wildcard)`、`$(patsubst)` 等。
- `ARGUMENTS` 代表函数的参数,参数之间使用逗号 `,` 分隔。函数名与参数之间以及参数内部的空格或制表符用于分隔,推荐使用一个空格以避免潜在问题。
2. **函数调用注意事项**:
- 用户自定义的函数需要通过 `call` 函数来间接调用,如 `$(call FUNCTION_NAME, arg1, arg2, ...)`。
- 使用圆括号 `( )` 或花括号 `{ }` 括起函数名和参数,两者需成对出现。在有变量或函数引用的参数中,建议使用相同的括号类型以保持一致性。
- 在 Makefile 中,避免使用 Tab 键来分隔参数,因为这可能导致解析问题,最好使用空格。
3. **GNU Make 基础**:
- Makefile 是一种文本文件,其中包含了构建项目的一系列规则。`$(MAKE)` 变量可以用来引用 make 工具自身,而 `MAKEFILES` 变量可以指定额外的 Makefile 文件。
- Makefile 规则定义了目标文件(通常是编译后的可执行文件或库)及其依赖关系,以及更新目标所需的命令。
- 自动变量,如 `$@` 表示当前目标,`$<` 表示第一个依赖项,可以方便地在规则的命令行中使用。
- 自动推导规则允许 make 自动为某些常见的文件类型生成构建命令,比如 `.c` 文件编译为 `.o` 文件。
4. **Makefile 规则的细节**:
- 通配符 `*` 和 `?` 可用于匹配一组文件,但使用时需注意它们可能带来的问题,如未匹配到文件的情况。`$(wildcard)` 函数可以安全地查找匹配通配符的文件。
- `VPATH` 变量用于设置源文件的搜索路径,而 `vpath` 指令可以更精确地指定特定类型的文件搜索路径。
- 伪目标如 `.PHONY` 用于指示 make 不要基于文件系统来判断目标是否需要更新,防止误判。
- 静态模式规则提供了一种更灵活的方式,可以通过模式匹配创建多个规则,与隐含规则结合使用可以极大地简化 Makefile 的编写。
5. **其他要点**:
- Makefile 也可以包含条件语句和函数,如 `ifeq`、`$(shell command)` 等,来实现更复杂的逻辑。
- 了解并熟练运用这些概念,能够帮助开发者编写出高效、简洁且易于维护的 Makefile,从而优化 STC8H 单片机或其他项目的构建流程。
理解 GNU Make 的函数调用语法及 Makefile 的核心概念对于编写高效的构建脚本至关重要,尤其是在单片机编程这样的工程中,它可以自动化许多重复的任务,提高开发效率。
2020-06-16 上传
110 浏览量
105 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
李_涛
- 粉丝: 55
- 资源: 3877
最新资源
- ES管理利器:ES Head工具详解
- Layui前端UI框架压缩包:轻量级的Web界面构建利器
- WPF 字体布局问题解决方法与应用案例
- 响应式网页布局教程:CSS实现全平台适配
- Windows平台Elasticsearch 8.10.2版发布
- ICEY开源小程序:定时显示极限值提醒
- MATLAB条形图绘制指南:从入门到进阶技巧全解析
- WPF实现任务管理器进程分组逻辑教程解析
- C#编程实现显卡硬件信息的获取方法
- 前端世界核心-HTML+CSS+JS团队服务网页模板开发
- 精选SQL面试题大汇总
- Nacos Server 1.2.1在Linux系统的安装包介绍
- 易语言MySQL支持库3.0#0版全新升级与使用指南
- 快乐足球响应式网页模板:前端开发全技能秘籍
- OpenEuler4.19内核发布:国产操作系统的里程碑
- Boyue Zheng的LeetCode Python解答集