zoukankan      html  css  js  c++  java
  • 第十七篇 make的路径搜索综合实践

     本节我们编写路径搜索相关的makefile,具体需求如下:
     1、工程项目中不希望源码文件夹在编译时被改动(只读文件夹)。
     2、在编译时自动创建文件夹(build)用于存放编译结果。
     3、编译过程中能够自动搜索需要的文件
     4、makefile易于扩展,能够复用于相同类型的项目
     5、支持调试版本的编译选项
     
    项目文件组织如下:
     
     
    需要用到的三个工具原料如下:
    1、$(wildcard $(DIR)/_pattern)
      获取DIR文件夹中满足_pattern的文件。
    2、$(notdir _names)
      去除_names中每一个文件名的路径前缀
    3、$(patsubst _pattern, replacement, _text)
      将_text中符合_pattern的部分替换为replacement
     
    关键技巧如下:
    1、自动获取源文件列表(函数调用)
      SRCS := $(wildcard src/*.c)
    2、根据源文件列表获取目标文件列表(变量的值替换)
      OBJS := $(SRCS:.c=.o)
    3、替换每一个目标文件的路径前缀(函数调用)
      OBJS := $(patsubst src/%, build/%, $(OBJS))
     
    makefile程序如下:
     
     
    执行make,结果如下所示:
     
     
    程序的39行中,我们让build下的目标文件直接依赖于所有的头文件,规模较小的项目没有必要使用自动生成依赖关系的方案。规模较小的项目让目标文件直接依赖于头文件会更易于维护。
     
     
    参考如下:
       狄泰软件教程及课件
       gun make手册
       专业嵌入式软件开发
     

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">





  • 相关阅读:
    如何将DataTable转换成List<T>呢?
    mySql中SUBSTRING_INDEX函数用法
    常用 Git 命令清单
    git学习笔记
    MySql 获取表的字段名
    mysql从身份证号中提取生日、性别
    年月日转大写汉字
    ExtJs服务器端代理(Ajax)
    ExtJS客户端代理
    ExtJS 数据模型
  • 原文地址:https://www.cnblogs.com/wanmeishenghuo/p/8430331.html
Copyright © 2011-2022 走看看