GNU make:目标指定变量详解
需积分: 50 17 浏览量
更新于2024-08-08
收藏 1.24MB PDF 举报
"GNU make中文手册ver-3.8"
在GNU Make中,目标指定变量(Target-specific Variable)是一种高级特性,允许为特定的目标设定不同的变量值,这些值只在该目标及其相关规则的上下文中有效。这种局部性确保了不同目标可以有不同的构建配置,而不影响其他目标。
设置目标指定变量的语法有两种形式:
1. `TARGET ... : VARIABLE-ASSIGNMENT`
2. `TARGET ... : override VARIABLE-ASSIGNMENT`
其中,`TARGET`是你要指定的规则的目标,`VARIABLE-ASSIGNMENT`是你想要分配给该目标的变量值。使用`override`关键字可以防止命令行或环境变量的定义覆盖目标指定的变量。
目标指定变量的特点包括:
1. 赋值方式灵活,可以使用`=`, `:=`, `+=`, 或 `?=`。
2. 不影响全局变量。即使Makefile中已有一个同名的全局变量,目标指定变量的定义也不会改变全局变量的值,仅对指定目标可见。
3. 优先级与全局变量相同。命令行定义或`-e`选项下的环境变量可以覆盖目标指定变量,除非使用`override`。
4. 它们与全局变量是独立的实体,可以在展开风格上有所不同。
5. 目标指定变量的作用域涵盖由该目标触发的所有规则。
例如:
```makefile
prog : CFLAGS = -g
prog : prog.o foo.o bar.o
```
在这个例子中,无论全局`CFLAGS`如何定义,对于目标`prog`,`CFLAGS`将被设置为`-g`,影响到`prog`的编译过程。
理解这一特性对于编写复杂的Makefile至关重要,因为它使得构建过程可以根据目标的不同而有不同的配置,提高了灵活性和可维护性。在Makefile中,正确使用目标指定变量可以避免不必要的冲突,使构建过程更加可控。
2014-12-01 上传
2021-04-23 上传
2021-06-05 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
Matthew_牛
- 粉丝: 40
- 资源: 3820
最新资源
- 单片机串口通信仿真与代码实现详解
- LVGL GUI-Guider工具:设计并仿真LVGL界面
- Unity3D魔幻风格游戏UI界面与按钮图标素材详解
- MFC VC++实现串口温度数据显示源代码分析
- JEE培训项目:jee-todolist深度解析
- 74LS138译码器在单片机应用中的实现方法
- Android平台的动物象棋游戏应用开发
- C++系统测试项目:毕业设计与课程实践指南
- WZYAVPlayer:一个适用于iOS的视频播放控件
- ASP实现校园学生信息在线管理系统设计与实践
- 使用node-webkit和AngularJS打造跨平台桌面应用
- C#实现递归绘制圆形的探索
- C++语言项目开发:烟花效果动画实现
- 高效子网掩码计算器:网络工具中的必备应用
- 用Django构建个人博客网站的学习之旅
- SpringBoot微服务搭建与Spring Cloud实践