GNUmake中文手册:Stc8H单片机变量设置与Makefile详解
需积分: 34 158 浏览量
更新于2024-08-10
收藏 1.45MB PDF 举报
"如何设置变量-stc8h 系列单片机技术参考手册"
在 GNU Make 中,设置变量是构建 Makefile 的关键部分,用于存储和传递信息。本篇主要聚焦于如何在 Makefile 中定义和使用变量,适用于 STC8H 系列单片机的开发。
首先,变量可以通过“=”或“:=”进行定义。使用“=”定义的变量称为递归展开式变量,它的值在使用时才会展开,如果值中包含其他变量,会在遇到该变量时进行展开。例如:
```make
objects = main.o foo.o bar.o utils.o
```
这里的 `objects` 变量被定义为一个 `.o` 文件列表,其中的空格会被忽略。
而使用“:=”定义的变量为直接展开式变量,它的值在定义时就会立即展开,即使值中包含其他变量或函数的引用。这种方式有时更高效,但要注意可能会导致早期评估的问题。
定义变量时需注意以下几点:
1. 变量名可以包含其他变量或函数的引用,make 在读取时会进行替换。例如,`$(foo)bar` 可能会被替换为已经定义的 `foo` 变量的值加上 "bar"。
2. 变量的值长度没有硬性限制,但应考虑实际需求和机器内存。长变量值可通过换行并用反斜杠(\)连接来提高可读性和维护性。
3. 引用未定义的变量,默认其值为空。
4. 有些预定义的隐含变量,如 `CC`、`CFLAGS` 等,可以在 Makefile 中重新赋值,以适应项目需求。
5. 自动变量如 `$@`、`$<` 等,它们在不同规则中会有不同的值,用于在规则命令中引用目标和依赖等。
6. 使用“?=”赋值运算符可以确保只有当变量未定义时才进行赋值,避免覆盖已有值。
了解这些基本概念后,可以更好地编写 Makefile,有效地组织编译和构建流程。例如,可以创建规则来编译源文件:
```make
CFLAGS = -Wall -g
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
```
在这个例子中,`CFLAGS` 是一个预定义变量,用来设置编译选项,`%.o: %.c` 是一个模式规则,`$<` 和 `$@` 分别代表依赖文件和目标文件。
理解和熟练运用 GNU Make 中的变量机制,能够帮助开发者编写出高效且易于维护的 Makefile,从而优化 STC8H 系列单片机的软件构建过程。
105 浏览量
110 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
131 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
Yu-Demon321
- 粉丝: 23
- 资源: 3968
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫