理解Makefile中的隐含规则与变量
需积分: 50 36 浏览量
更新于2024-08-10
收藏 964KB PDF 举报
"《隐含规则使用的变量-算法引论:一种创造性方法》高清版,由陈皓编著,祝冬华整理。本书探讨了如何使用Makefile进行程序的编译和链接,详细介绍了Makefile的规则、变量、自动推导、规则书写以及命令和变量的高级用法。"
在Makefile编程中,隐含规则是预设的一系列构建步骤,它们利用了一系列内置的变量。这些变量可以在Makefile内部被重新定义,也可以通过命令行参数或环境变量来设定,影响隐含规则的执行。例如,`$(CC)`是用于指定C编译器的变量,默认为`cc`,但可以更改为`gcc`,而`$(CFLAGS)`则包含编译时的选项,如`-g`用于开启调试信息。
Makefile中关于命令的变量有:
1. `AR`: 它定义了创建函数库的程序,默认为`ar`,用于创建静态库。
2. `AS`: 指定汇编器,默认为`as`,用于将汇编语言源代码转换为机器代码。
除了命令相关的变量,还有参数相关的变量,例如`CFLAGS`,它包含了传递给编译器的额外选项。这些变量使得Makefile具有高度可配置性和灵活性,可以根据项目需求调整编译和链接过程。
书中详细讲解了Makefile的各个方面:
- 显式规则和隐晦规则:显式规则直接定义了目标及其依赖,而隐晦规则是预设的,无需显式声明,比如C程序的编译规则。
- 变量的定义和使用:变量可以存储常量或动态值,提高代码复用性。
- 自动推导:make能够自动推导某些源文件和目标文件之间的依赖关系。
- 规则的编写:包括通配符的使用、文件搜寻、多目标规则、静态模式规则等。
- 命令的处理:如何控制命令的显示、执行、错误处理,以及嵌套的make调用。
- 追加变量值、override指示符和多行变量等高级变量用法。
- 条件判断和函数的使用:使Makefile具备一定的逻辑判断能力,并提供多种字符串和文件操作功能。
《跟我一起写Makefile》这本书通过丰富的例子和详细的解释,帮助读者深入理解Makefile的编写和管理,是学习Makefile不可多得的参考资料。
2656 浏览量
2018-08-20 上传
161 浏览量
177 浏览量
2012-12-01 上传
168 浏览量
羊牮
- 粉丝: 41
- 资源: 3855
最新资源
- BBTNewsKit:bt新闻中心的新闻发布工具包~
- R2CNN-DFPN_RPN_HEAD_AROI-Linux:【Linux版本】Linux上的论文“通过多尺度旋转区域卷积神经网络的任意方向船的位置检测和方向预测”的实现(基于anthor的源代码)
- arxiv-papers-mobile:ArXiv Papers,一个React Native应用程序,目前可用于Android。 搜索,下载和保存arXiv科学论文
- KrantikariQA:基于InformationGain的知识图系统问答
- Excel模板基础体温表格基础体温表.zip
- dise-oweb2
- PhDthesis:博士论文的文件和分析
- uCOS-III模板_STM32F103_UCOSIII移植_工程模板_uCOS-III
- cooking:我最喜欢的食谱
- rock_paper_scissors_300_300_3.zip
- labper:智能实验室管理系统(使用Django构建)
- opencv-haar-classifier-training
- 动物园管理员
- RLsilde:有关加强学习的一些注意事项
- ogre-sample:Ogre3D CMake 项目模板
- My_BSc_Diploma_Thesis