gpt4 book ai didi

gcc - 如何添加二进制资源

转载 作者:行者123 更新时间:2023-12-04 04:55:12 26 4
gpt4 key购买 nike

我有一个项目需要在可执行文件中包含一堆图形文件。由于目标上没有文件系统,我不能只使用 fopen功能。一种方法是将文件内容转换为包含像这样的变量定义的 C 源代码

unsigned char file1_content[] = {
0x01, 0x02, ...
};

即使使用转换器工具构建此类文件也很麻烦。

有没有办法在为每个文件指定变量名的同时将二进制文件添加到 rdata 部分?我考虑为此使用链接器脚本,但没有找到方法。

最佳答案

使用工具并不是特别麻烦,这是经典的解决方案。 Search for "bin2c"找一些。

您只需要在构建过程中包含这些“ Assets 构建”步骤,即从 Makefile 调用该工具。这也意味着该工具仅在源数据发生更改时运行,这很好。

至少 GNU 链接器 (LD) 似乎能够将文件放置在输出文件的各个部分中(参见 Section Placement documentation ,如下所示:

.data : { afile.o bfile.o cfile.o }

但这听起来很麻烦,它需要您考虑可执行文件中通常有点太低级的部分。此外,它似乎要求输入是目标文件,这使得问题循环,因为通用二进制 Assets 不是链接器兼容的目标文件。

我建议使用 bin2c 方法。

关于gcc - 如何添加二进制资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16852169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com