笔记——inf、dsc、dec文件
一、inf文件
inf文件(Module Information File)--用于编译一个模块;模块的工程文件,相当于Makefile文件,用于指导EDK2编译工具自动编译模块。
工程文件分很多块,每个块以[块名]开头,[块名]必须单独占一行
必须块:
[Defines] 定义本模块的属性变量以及其他变量,这些变量可以在工程文件其他块中引用
[Sources] 列出本模块的所有源文件以及资源文件
[Packages] 列出本模块引用到的所有包的包声明文件;可能引用到的资源包括头文件、GUID、Protocol等,这些资源都声明在包的包声明文件.dec中
[LibraryClasses] 列出本模块要链接的库模块
非必须块:
[Protocol] 列出本模块用到的Protocol
[Guids] 列出本模块用到的GUID
[BuildOptions] 指定编译和链接选项
[Pcd] Pcd全称平台配置数据库(Platform Configuration Database),用于列出本模块用到的Pcd变量,这些Pcd变量可以被整个UEFI系统访问
[Defines]块
[Defines]块用于定义模块的属性和其他变量,块内定义的变量可被其他块引用
1、属性定义语法
属性名=属性值
2、必须定义的属性
INF_VERSION:INF标准的版本号
BASE_NAME:模块名字字符串
FILE_GUID:每个工程文件必须有一个8-4-4-4-12格式的GUID,用于生成固件
VERSION_STRING:模块的版本号字符串
MODULE_TYPE:定义模块的模块类型
ENTRY_POINT:定义模块的入口函数
[Sources]块
[Sources]块用于列出模块的所有源文件和资源文件
1、语法
块内每一行表示一个文件,文件使用相对路径
2、体系结构相关块
.$(Arch)是可选项,可以是IA32、X64、IPF、EBC、ARM中的一个,表示本块使用的体系结构
3、编译工具链相关的源文件
|GCC表示文件仅在使用GCC编译器时有效
[Packages]块
[Packages]块用于列出本模块引用到的所有包的包声明文件(.dec文件)
1、语法
每一行列出一个文件,文件使用相对路径。若[Sources]块内列出了源文件,则在[Packages]块必须列出Mdepkg/Mdepkg.dec,并将其放在本块的首行
[LibraryClasses]块
[LibraryClasses]块用于列出本模块要连接的库模块
1、语法
块内每一行声明一个要链接的库(库定义在包的.dsc文件中)
2、常用库
应用程序工程模块必须链接UefiApplicationEntryPoint库;驱动模块必须链接UefiDriverEntryPoint库
二、dsc文件
dsc文件(Platform Description File)--用于编译一个Package;每个包包含一个dec(Package Declaration File)文件和一个dsc文件
必须块
[Defines]
[LibraryClasses]
[Components]
非必须块
[PCD]
[BuildOptions]
[Defines]块
[Defines]块用于设置build相关的全局宏变量,这些变量可以被.dsc文件的其他模块引用
1、语法
宏变量名=值
2、必须定义的宏变量
DSC_SPECIFICATION 数值 须保证向后兼容
PLATFORM_GUID GUID 平台GUID,每个.dsc文件必须有一个独一无二的GUID
PLATFORM_VERSION 数值 .dsc文件变化时,增加此数值
PLATFORM_NAME 标识符 标识字符串只能包含英文字符、数字、横线和下划线
SKIOD_IDENTIFIER 标识符 可以通过命令行在build时传入
SUPPORTED_ARCHITECTURES 列表 通过 | 分隔的列表,该.dsc所支持的平台体系结构
BUILD_TARGETS 列表 通过 | 分隔的刘表,该.dsc所支持的编译目标
[LibraryClasses]块
[LibraryClasses]块中定义了库的名字以及库.inf文件的路径,这些库可以被[Components]块内的模块引用
1、语法
[LibraryClassed.$(Arch).$(MODULE_TYPE),LibraryClasses.$(Arch1).$(MODULE_TYPE1)]
LibraryName | Path/LibraryName.inf
$(Arch)和$(MODULE_TYPE)是可选项,逗号表示并列关系。
$(Arch)表示体系结构
$(MODULE_TYPE)表示模块的类别
[Components]块
[Components]块中地暖管一的模块都会被build工具编译并生成.efi文件
三、dec文件
dec文件(Packages Declaration File)定义了公开的数据和接口,供其他模块使用
必须区块
[Defines]
非必须快
[Includes]
[LibraryClasses]
[Guids]
[Protocols]
[Ppis]
[PCD]
[Defines]块
[Defines]块用于提供package的名称、GUID、版本号等信息
笔记——inf、dsc、dec文件相关推荐
- UEFI 系统变量服务和dsc,dec,inf简单理解
系统变量服务是运行时服务提供的服务,用来操作系统变量. 包括读取系统变量的GetVariable,新建或更改变量的setVariable,遍历系统变量的GetNextVariableName. 要使用 ...
- UEFI原理与编程第二章学习- .dsc .dec .fdf文件与包
.dsc .dec .fdf文件及包 上一篇介绍了 .inf文件, .inf文件相当于Visual Studio中的工程文件.而 .dsc(Platform Description File)则 ...
- [python教程入门学习]python学习笔记(CMD执行文件并传入参数)
本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...
- Unix原理与应用学习笔记----第六章 文件的基本属性2
Unix原理与应用学习笔记----第六章 文件的基本属性2 改变文件权限命令:chmod 提示:文件或目录创建后,就被赋予一组默认的权限.所有的用户都有读,只有文件的所有者才有写. 相对权限设置 Ch ...
- ActiveX: 如何用.inf和.ocx文件生成cab文件
ActiveX: 如何用.inf和.ocx文件生成cab文件 转载于:https://www.cnblogs.com/time-is-life/p/5977962.html
- Android学习笔记之AndroidManifest.xml文件解析(摘自皮狼的博客)
Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它 ...
- 在微信收藏笔记中的录音文件拷贝或另存问题--适用于silk无法导出,看不见的情况
在微信收藏笔记中的录音文件拷贝或另存问题–适用于silk无法导出,看不见的情况 微信收藏的语音消息可以按照以下步骤,来导出为mp3格式. 1,在电脑上登陆PC版微信. 2,点击"收藏&quo ...
- 怎么在笔记中加入音频文件?
有些人在工作的时候会用到笔记工具,除了会记录一些文字内容外,还会上传添加图片.音频等附件. 既然如此,怎么在笔记中加入音频文件呢?要怎么操作呢?以手机端敬业签为例,我们一起来看一下要怎么操作. 一.在 ...
- INF安装信息文件⑥
INF高级应用实例 利用INF文件,我们可以完成很多意想不到的操作,这里通过几个实例进行说明: 实例一:完全删除驱动程序 很多情况下,当我们将不需要的硬件设备从系统拔出或取消连接后,其驱动程序并未从系 ...
最新文章
- QPushButton 响应回车 设置默认按钮
- oracle惯用缩写的含义
- python3 导入自定义函数
- 随机重命名MP3文件
- rds 数据导入mysql_将数据导入到 Amazon RDS 数据库实例
- c++ STL 全排列
- Hadoop之HDFS应用
- 产品经理岗位职责及面试指南
- 网络安全技术第六章——第一节计算机病毒及其防治(中毒表现、计算机病毒概述、计算机病毒分类、病毒传播路径、计算机病故防治建议、我之前写过一篇这个,有需要的可以去看一下)
- 阿阿斯顿发沙发是地方撒旦法
- 操作系统内核框架图整理
- 怎么在Excel中准确提取出姓名中的姓氏
- #7 C++高级--内存管理、文件处理、多线程
- Unity Particle System 制作刀光特效
- Mysql主从复制之异步与半同步以及主从切换(实验)
- Centos安装Oracle11Gr2到84%的时候报错Error in invoking target ‘install‘ of makefile
- 中国高科技企业在忙什么(聚焦)
- 刚刚从GitHub 上扒下来,标星 75k,超牛的《Java面试突击版》,这么高标星果真有原因的
- Vue高仿网易云网页端源码
- 无线远程模块的应用,手机APP远程监控PLC数据技术方案
热门文章
- typora 主题 背景图片 透明代码块
- 2021年加氢工艺考试报名及加氢工艺考试资料
- Android 文件命名最大长度限制
- SEO优化论坛让我懂了没团队经验,看如何制作短视频赚钱一天20元
- screen投屏怎么用_Screen怎么投屏电脑?Screen投屏电脑的方法
- 微信公众号简单开发(10)链接消息
- 基于STC15W4K32单片机仿真《定时器0实现LED闪烁》
- 安装显卡驱动提示“未找到兼容图形设备”的解决方法
- Unity/C# Socket框架学习遇到的相关方法
- 解决:Component Xxx is not part of any NgMo