Skip to content

Latest commit

 

History

History

hrc

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

说明

RC(Resource Compiler)主要用于将各种文件资源编译到应用程序。

本组件类似于桌面程序的资源文件,主要针对嵌入式编程。

在固件编写中,很多时候需要大量的固定数据,直接手工嵌入到C文件里比较麻烦。

通过读取文件转换到对应C文件可大大节省时间,可添加常用的文件(如各种证书)或者不适宜放在可读写的文件系统中的文件(如需要在格式化中保留或者初始参数)。转换程序源代码为fsgen.cpp

C/C++源代码使用步骤如下:

  • 将待添加的文件放入 fs目录下(可使用HRC_FS_ROOT_DIR环境变量切换到其它目录)。

  • 使用文件名调用以下函数(需包含相应头文件hrc.h):

    //通过名称获取资源大小
    size_t RCGetSize(const char * name);
    
    //通过名称获取资源指针
    const unsigned char * RCGetHandle(const char * name);
    
    //枚举所有资源(可用于资源查找)
    void RCEnum(RCEnumCallback_t cb);

编译器需支持的最低标准:

  • C语言标准:C99
  • C++语言标准:C++11

构建系统

本组件支持的构建系统如下:

若未使用本组件支持的构建系统,可通过以下步骤使用此组件:

  • 添加本目录到C/C++编译器的包含目录。
  • 将本目录下的C/C++文件(除fsgen.cpp)添加至构建系统的源代码文件列表。
  • 调用fsgen(Windows下使用fsgen.exe,其它操作系统使用编译器将fsgen.cpp编译成可执行文件)将某目录打包成C源代码,并将此源代码加入构建系统的源代码文件列表。若资源文件固定,本步骤只需要执行一次,后面直接使用打包好的C源代码。若资源文件可变,本步骤应当在构建C/C++源代码前执行。

环境要求

本组件由于本组件需要在构建主机中执行可执行程序用于将资源文件转换为C源代码,对构建主机(build host)的要求如下:

  • Windows主机(x86、x86_64)。
  • 安装有g++的其它操作系统。

环境变量

若使用了本组件支持的构建系统,此时可使用环境变量进行一些设定:

名称 说明 备注
HRC_FS_ROOT_DIR 打包文件根目录,此目录下的文件将被打包进资源文件 若未设定此环境变量,将使用默认目录fs