第19课 - 路径搜索的综合示例
第19课 - 路径搜索的综合示例
1. 需求分析
(1)工程项目中不希望源码文件夹在编译时被改动(只读文件夹)
(2)在编译时自动创建文件夹(build)用于存放编译结果
(3)编译过程中能够自动搜索需要的文件
(4)makefile 易于扩展,能够复用于相同类型的项目
(5)支持调试版本的编译选项
2. 项目类型分析
3. 工具原料
(1)wildcard 函数
函数用法:
函数功能:获取 $(DIR) 文件夹中满足 _pattern 的文件
(2)notdir 函数
函数用法:
函数功能:去除 _names 中每一个文件名的路径前缀
(3)patsubst 函数
函数用法:
函数功能:将 _text 中符合 _pattern 的部分替换为 replacement
4. 关键技巧
(1)自动获取源文件列表(函数调用)
(2)根据源文件列表生成目标文件列表(变量的值替换)
(3)替换每一个目标文件的路径前缀(函数调用)
5. 编译规则的依赖
值得斟酌的问题?
对于规模较小的项目,makefile 中是否也需要使用自动生成依赖关系的解决方案呢?
模式规则的灵活运用使得makefile具有复用性
变量的灵活运用使得makefile具有扩展性
规模较小的项目没必要使用自动生成依赖关系的解决方案
规模较小的项目可以直接让源文件依赖于头文件(易于维护)
注:本文整理于《狄泰12月提升计划》课程内容
狄泰QQ群:199546072