当前位置: 首页 > article >正文

9、include 文件包含

关注公众号 “融码一生”,领取全套 PDF / 电子书

  • Makefile 中包含其他文件使用的关键字是include,和 C 语言包含头文件的方式相同。
  • 当 make 读取到include关键字时,会暂停读取当前的 Makefile,而去读include包含的文件,读取结束后再继读取当前的 Makefile 文件。include使用的具体方式如下:
    • include <filenames>
      • filenames:shell 支持的文件名(可以使用通配符表示的文件)
  • 注意:include关键字所在的行首可以包含一个或多个空格(读取时空格会被自动忽略),但不能使用 Tab 开始,否则会把include当作命令来处理。包含的多个文件之间要用空格分隔。使用include包含进来的文件中,如果存在函数或变量的引用,它们会在 Makefile 中展开。
  • include 通常在以下场合使用:
    • 在一个工程文件中,每一个模块都有一个独立的 Makefile 来描述它的重建规则。它们需要定义一组通用的变量定义或模式规则。通用的做法是将这些共同使用的变量或模式规则定义在一个文件中,需要时用include包含这个文件。
    • 当根据源文件自动产生依赖文件时,可以将自动产生的依赖关系保存在另一个文件中。然后在 Makefile 中包含这个文件。
  • 注意:如果使用include包含文件时,指定的文件不是文件的绝对路径或没有这个文件,make 会根据文件名在以下几个路径中去找,首先在执行 make 命令时可以加入选项-I--include-dir,后面添加上指定的路径,如果文件存在就会被使用,如果文件不存在将会在几个路径中搜索:
    • usr/gnu/include
    • usr/local/include
    • usr/include
  • 如果在上面的路径没有找到include指定的文件,make 将会提示一个文件没有找到的警示提示,随后继续执行 Makefile 的后续内容。当完成读取整个 Makefile 后,make 将试图使用规则来创建通过include指定但不存在的文件。当不能创建时,文件将会保存退出。
  • 使用时,通常用-include代替include来忽略文件不存在或无法创建的错误提示,使用格式如下(使用方法和include的使用方法相同):
    • -include <filename>
  • 这两种方式之间的区别:
    • 使用include <filenames>,make 在处理程序时,文件列表中的任意一个文件不存在时或没有规则去创建这个文件时,make 程序将会提示错误并保存退出。
    • 使用-include <filenames>,当包含的文件不存在或没有规则去创建它时,make 将会继续执行程序,只有真正由于不能完成终极目标重建时程序才会提示错误、保存退出。

关注公众号 “融码一生”,领取全套 PDF / 电子书

http://www.lryc.cn/news/2419980.html

相关文章:

  • pci-e串口卡linux 驱动下载,PCI/PCIe串口卡并口卡驱动
  • HMM(隐马尔可夫)中文分词
  • 白嫖云开发?这羊毛不薅?
  • 下载并安装WIN7 SP2的官方补丁包
  • 洛谷入门——P1179 [NOIP2010 普及组] 数字统计
  • Android BroadcastReceiver
  • 工业大数据:制造业中的优化策略
  • asp毕业设计——基于asp+access的公司门户网站设计与实现(毕业论文+程序源码)——公司门户网站
  • 做网站的流程与步骤
  • 信管家博易大师、智星、易盛等都是证券交易软件,它们的区别主要在以下几个方面
  • 计算机考试重点题目与答案
  • 什么是CGI文件
  • Python Selenium搭建UI自动化测试框架_python ui自动化框架(1)
  • 小RNA的测序技术路线以及分析流程
  • Gabor滤波器
  • 数据结构 - 向量简单介绍
  • 从零开始搭建个人博客(保姆级教程)
  • 网络:DHCP 协议简介
  • 阿里巴巴国际站商品信息搜索采集API接口说明文档(含请求示例)
  • 基于java+ssm+jsp的人事档案管理系统
  • C++课程设计学生宿舍管理信息系统
  • 基于ssm大学生创新创业平台项目管理子系统设计与实现
  • 测试会使用到的网络知识汇总
  • 用友u8操作手册_用友U8账表操作手册
  • 十大Web网站漏洞扫描工具
  • Java语言有哪些特点?
  • 毕业设计:基于Springboot的旅游网管理系统【代码+论文+PPT】
  • 基于SpringBoot+Vue的金融终端支付管理系统设计与实现(源码+lw+部署文档+讲解等)
  • Springboot电子货币在线交易平台 计算机专业毕业设计源码
  • 第十四讲_css媒体查询