将二进制文件加到C源码中的工具包:incbin.bat

分享到:
有时你需要将二进制数据嵌入至C / C++程序。 INCBIN是一个跨平台的工具,刚好用来做到这一点。不像其他的解决方案,INCBIN是使用操作系统已经搭载的部件,所以不需要安装第三方工具。它是跨平台的,并且同样适用于Windows和UNIX系统。

Example usage:

Windows:
incbin.bat myfile.bin output.h foo
UNIX:
sh incbin.bat myfile.bin output.h foo

(where 'foo' is the C symbol name you want the data stored in)

Further usage

Here's an example showing how to callincbinfrom a Makefile:

all : foo.h
SCRIPTSHELL := $(if $(findstring $(OS),Windows_NT),cmd /c,sh)
foo.h : test.png
$(SCRIPTSHELL) incbin.bat $< $@ foo

Output format

Here's an example of the kind of output you get:

incbin.bat test.bin foodata.h foo

/* Generated by incbin */
#include <stddef.h>
const unsigned char foo_data[] = {
/*00000000*/ 0x40,0x65,0x63,0x68,0x6F,0x20,0x6F,0x66,0x66,0x0D,0x0A,0x22,0x43,0x3A,0x5C,0x50,
/*00000010*/ 0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x46,0x69,0x6C,0x65,0x73,0x20,0x28,0x78,0x38,
/*00000020*/ 0x36,0x29,0x5C,0x4D,0x69,0x63,0x72,0x6F,0x73,0x6F,0x66,0x74,0x20,0x56,0x69,0x73,
/*00000030*/ 0x75,0x61,0x6C,0x20,0x53,0x74,0x75,0x64,0x69,0x6F,0x20,0x39,0x2E,0x30,0x5C,0x56,
/*00000040*/ 0x43,0x5C,0x62,0x69,0x6E,0x5C,0x76,0x63,0x76,0x61,0x72,0x73,0x33,0x32,0x2E,0x62,
/*00000050*/ 0x61,0x74,0x22,0x0D,0x0A
};
const size_t foo_size = sizeof(foo_data);

项目主页:http://www.open-open.com/lib/view/home/1422783944267


昵    称:
验证码:

相关文档:

  • 用C语言编写的微小HTTP解析器:PicoHTTPParser
    PicoHTTPParser是一个很小的,原始的,快速的HTTP请求/响应解析器。...
  • Windows下用Eclipse搭建C/C++开发环境
    Windows下C/C++的IDE有很多,要学习Eclipse,所以就选下面要讲的Eclipse + GNU toolchain(话说toolchain这个词很形象)....
  • Simple MySQL-C ORM - 简化C语言访问MySQL
    当你需要在纯C语言的应用程序中访问 MySQL 表中的数据时,是非常繁琐的事情,而该框架可以帮你大量的简化编码的工作,该框架采用 Pyt...
  • C++操作SQLite数据库
    在使用C++操作SQLite之前,需要获得sqlite3.h,sqlite3.lib,sqlite3.dll,大家可以在这里下载。并将这3个文件导入VC++工程中。其中sqlite3.dll文件...
  • 类似于Java Spring的C++依赖注入库:autumnframework
    Autumn Framework 项目是用C++实现依赖注入。它支持属性setter注入和构造器注入。它可以在多个平台上编译。它支持POCO(普通的C + +对象)并...
  • 实现专业品质创意的C++开源包:Cinder
    Cinder是一个专为创意而生的C++开源包。Cinder是一款C++开源资料库,是一个跨平台的,专为程序制图、音频、视频、网络、图像处理和计算...
  • 底层的 C 程序库 skalibs
    skalibs 是一组用于一般用途的、底层的 C 程序库,可替换标准 C 库的一些方法,主要用于构建很小的静态二进制文件。...
  • 应用容器的 C++ 库:libappc
    libappc 是一个 C++ 库用来操作应用容器。该库的目标是提供一个灵活的工具包来实现 manifest 解析、创建,可嵌入式的发现、映像的创建提...
  • 替换printf的C++库:tinyformat.h
    这是一个最小的类型安全替换printf的C++库。...
  • C 扩展类库:celib
    celib 是使用ANSI C开发的一个扩展类库(c extend library),包含了一些常用的数据结构和算法的封装,可以应用到项目或者用于学习。...
  • 纯C语言INI文件解析
    在一个跨平台( Android 、Windows、Linux )项目中配置文件用 INI 格式,自己写了个解析库,纯C语言的,简单好用。 可以解析 INI 格式...
  • 单位转换测量 GNU Units
    GNU 单位转换测量到其等值的其他测量系统的各种系统中表达量。像许多类似的方案,它可以处理乘法规模的变化。...
  • 跨平台的C++开发环境 CodeLite IDE
    CodeLite IDE 是一个强大的开源,跨平台的 C/C++整合开发环境. 支持包括 Windows、Linux 和 Mac 系统下运行。...
  • Mingw Developer Studio
    Mingw Developer Studio 是一个 Mingw 的集成开发环境。...
  • C语言常用工具包 libscl
    libscl (SCL) 是一个C语言常用工具包,主要功能包括哈希表、列表、队列、堆栈、符号、平衡二叉树、向量等数据结构的实现。...
  • zip文件C语言解析包 ZZIPlib
    ZZIPlib 是一个轻量级的用来从ZIP文件抽读取文件的C语言包,同时也可以用来将多个文件压缩成zip格式,采用的是 zlib 库开发。...
  • 嵌入式GLIBC EGLIBC
    Embedded GLIBC (EGLIBC) 是 GNU C Library (GLIBC) 的一个变种,用于工作在嵌入式的系统中。EGLIBC 严格兼容二进制的 GLIBC 。...
  • Boost库 对时间和日期的处理 date_timer库
    /*Boost 对时间和日期的处理 提供了timer和data_time 库*/ //有关timer库提供了简易的度量时间和进度显示的功能可以用于性能测试等需要计时...
  • C语言编译器 Cilk
    Cilk多线程编程技术最早由MIT开 发,是一个基于Gcc编译器的开源项目。后来开发者创建了一个创业公司,推出改进的私有版本,整合到Wind...
  • C++图像处理库 ImageStone
    ImageStone是一套功能强大的C++图像处理库,它可以在多个平台之间移植。...