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具有扩展性

规模较小的项目没必要使用自动生成依赖关系的解决方案

规模较小的项目可以直接让源文件依赖于头文件(易于维护)

转载于:https://www.cnblogs.com/hoiday/p/9265766.html

第19课 - 路径搜索的综合示例相关推荐

  1. QT综合示例:QT串口通信

    QT综合示例:QT串口通信 0.界面: 1.代码: 如果用qt写程序作为上位机,然后通过和usb和下位机通信的时候,就需要用到qt中的串口通信了. 0.界面: 1.代码: 1).pro 添加: QT ...

  2. 传感器(7)加速传感器,重力传感器,邻近传感器,光线传感器 综合示例

    综合示例,包含: //加速传感器 //重力传感器 //邻近传感器 //光线传感器 1 import android.app.Activity; 2 import android.hardware.Se ...

  3. 模板数据tornado开发学习之2.输入输出,数据库操作,内置模板,综合示例

    最近用应开辟的过程中现出了一个小题问,趁便记载一下原因和方法--模板数据 用应python境环中的tornado行进web开辟上篇已决解了urlmap和基本行运机制的题问.接下来行进web程编就是一下 ...

  4. 实验三 综合示例设计与开发-“天气预报服务”软件

    实验三 综合示例设计与开发-"天气预报服务"软件 一.实验目的 (1)理解Android 软件开发从准备策划工作开始到软件发布全过程: (2)掌握使用多种组件进行Android程序 ...

  5. make--变量与函数的综合示例 自动生成依赖关系

    一.变量与函数的示例 示例的要求 1.自动生成target文件夹存放可执行文件 2.自动生成objs文件夹存放编译生成的目标文件 3.支持调试版本的编译选项 4.考虑代码的扩展性 完成该示例所需的 1 ...

  6. C结构体工具DirectStruct(综合示例二)

    2019独角兽企业重金招聘Python工程师标准>>> C结构体工具DirectStruct(综合示例二) 1.编写定义文件,用工具dsc处理之,自动生成XML转换代码和ESQL代码 ...

  7. QT+Halcon综合示例:clip回形针2D位姿检测

    QT+Halcon综合示例(一):clip回形针2D位姿检测 0.halcon源码: 1.Qt代码: 2.运行结果: 下载:clip回形针2D位姿检测 0.halcon源码: * clip.hdev: ...

  8. QT+OpenCV综合示例:图像混合(滑动条)

    QT+OpenCV综合示例:图像混合(滑动条) 1.代码: 2.运行结果: 0)Widget_op.ui (界面文件)设计: 1.代码: 1)opencv_imwrite_Q.pro 添加: INCL ...

  9. QT+OpenCV综合示例:载入、读取图片

    QT+OpenCV综合示例:载入.读取图片 1.代码: 2.运行结果: 下载1 GitHub: 下载2 1.代码: 1)opencv_imwrite_Q.pro 添加: INCLUDEPATH+= D ...

最新文章

  1. 制度缺陷,美国96%受访公司的人工智能项目陷于停顿,难怪封堵
  2. 惨烈!程序员放弃了 Python!?发生了啥?
  3. 将decimal类型的数据转成2.12这样价钱的显示方式
  4. d3.js 入门指南 - 仪表盘
  5. 图的广度优先算法+遍历
  6. mysql用户和权限备份_备份MySQL用户和权限
  7. mysql 生明变量_mysql中变量的使用
  8. 【毕业答辩】学位论文答辩ppt指南!
  9. try-catch lasterr
  10. Datawhale 零基础入门数据挖掘-Task4 建模调参
  11. java递归算法的实例最细讲解
  12. 电容电感充放电时间计算
  13. VS2017离线安装过程及下载缓慢处理(项目打包部署)
  14. 办公软件excel表格_EXCEL表格模板下载推荐?办公资源网优质海量素材资源免费下载...
  15. 各位大佬,Spark的重点难点系列暂时更新完毕
  16. Rayman的绝顶之路——Leetcode每日一题打卡16
  17. scala的交互式图表工具wisp
  18. 按“Win+E”键出现【找不到应用程序】或【explore.exe找不到】的解决方法
  19. 笔记本硬盘重装系统后只有一个盘的数据恢复方法
  20. ★电车难题的n个坑爹变种

热门文章

  1. 64bit centos 如何通过yum安装32bit的程序
  2. 谈谈我国电子商务中的安全问题
  3. JS 表单、表单验证(表单判断、get、post、submit、validity、checkValidity)
  4. recipe for target 'aclocal.m4' failed
  5. EOSIO:EOSIO最新版1.4.0创建测试账户
  6. Android WebView注入js文件,判断当前HTML有没有某个js然后再注入
  7. golang——strconv包常用函数
  8. 如何执行字符串的PHP代码
  9. Hadoop环境 IDE配置(在eclipse中安装hadoop-eclipse-plugin-2.7.3.jar插件)
  10. [转载]android一些、面试题