第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

原文地址:https://www.cnblogs.com/shiwenjie/p/8446477.html