有谁知道如何使用 GCC 将任何资源文件静态编译到可执行文件或共享库文件中?
例如,我想添加永远不会更改的图像文件(如果他们这样做,我无论如何都必须替换文件)并且不希望它们在文件系统中存在。
如果这是可能的(我认为这是因为 Windows 的 Visual C++ 也可以做到这一点),我如何加载存储在自己的二进制文件中的文件?可执行文件是否会自行解析、查找文件并从中提取数据?
也许我还没有看到 GCC 的一个选项。使用搜索引擎并没有真正吐出正确的东西。
我需要它来为共享库和普通的 ELF 可执行文件工作。
原文由 Atmocreations 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 imagemagick :
给出类似的东西:
For compatibility with other code you can then use either
fmemopen
to get a “regular”FILE *
object, or alternativelystd::stringstream
to make aniostream
。std::stringstream
不是很好,你当然可以在任何可以使用迭代器的地方使用指针。如果您将它与 automake 一起使用,请不要忘记适当地 设置 BUILT_SOURCES 。
这样做的好处是: