目标指定变量:Makefile中的局部化赋值
需积分: 44 52 浏览量
更新于2024-08-10
收藏 2.1MB PDF 举报
"Makefile10教程,讲解目标指定变量的使用方法,让读者了解如何在Makefile中针对特定目标设定变量,以及其作用域、赋值方式和优先级等特性。"
在Makefile编程中,目标指定变量(Target-specific Variable)是一个非常有用的概念,它允许我们为不同目标设置特定的变量值,而不会影响到其他目标或全局变量。这在处理复杂构建系统时特别有帮助,因为它提供了灵活性和粒度控制。
首先,定义一个目标指定变量的语法如下:
```makefile
TARGET ... : VARIABLE-ASSIGNMENT
```
或者,如果你想确保这个变量定义不会被命令行或环境变量覆盖,可以使用`override`关键字:
```makefile
TARGET ... : override VARIABLE-ASSIGNMENT
```
这里的`TARGET`是你要指定的目标,`VARIABLE-ASSIGNMENT`是变量的赋值表达式,可以使用等号(`=`,递归赋值)、双等号(`:=`,静态赋值)、加等号(`+=`,追加赋值)或问号等号(`?=`,条件赋值)。
目标指定变量有以下特点:
1. 变量赋值可以使用各种赋值操作符,赋予的值只在指定目标的上下文中有效,不影响全局变量的值。
2. 当有同名的全局变量时,目标指定变量的定义不会改变全局变量的值,只对指定目标可见。
3. 在命令行定义的变量或使用`-e`选项指定的环境变量会覆盖目标指定的变量,除非使用`override`关键字来声明。
举个例子,如果你有一个Makefile用于编译多个程序,每个程序可能需要不同的编译标志,你可以这样做:
```makefile
program1: CFLAGS += -DPROGRAM1
program2: CFLAGS += -DPROGRAM2
```
这样,`program1`的编译会使用`-DPROGRAM1`的标志,而`program2`则使用`-DPROGRAM2`,各自独立,互不影响。
了解并掌握目标指定变量的用法,可以使Makefile更加灵活和模块化,便于管理复杂的构建过程。同时,注意在编写Makefile时,合理地利用这种特性,可以避免不必要的变量冲突,提高代码的可读性和维护性。
2011-10-20 上传
2020-02-26 上传
2012-09-25 上传
2023-07-19 上传
2023-07-28 上传
2023-06-10 上传
2023-05-11 上传
2023-07-08 上传
2023-08-09 上传
小白便当
- 粉丝: 34
- 资源: 3977
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展