c++ - 我可以将普通文件链接到我的可执行文件吗?

标签 c++ c gcc linker embedded-resource

<分区>

一些框架(Qt、Windows、Gtk...)提供了将资源添加到二进制文件的功能。我想知道是否有可能在没有框架的情况下实现这一点,因为真正需要的是

  1. 在二进制文件(数据段)中包含资源地址的符号
  2. 表示资源长度的符号
  3. 资源本身

如何使用 gcc 工具链实现这一点?

最佳答案

你可以这样做:

objcopy --input binary \
        --output elf32-i386 \
        --binary-architecture i386 my_file.xml myfile.o

这会生成一个目标文件,您可以将其链接到可执行文件中。 该文件将包含您必须在 C 代码中声明的这些符号 能够使用它们

00000550 D _binary_my_file_xml_end
00000550 A _binary_my_file_xml_size 
00000000 D _binary_my_file_xml_start

关于c++ - 我可以将普通文件链接到我的可执行文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41404184/

相关文章:

c++:&rand 到底是做什么的?

c - 该程序中的内存是如何分配的?

c++ - 如何在sqlite3中检查列数是否改变

c - 是否可以告诉分支预测器跟随分支的可能性有多大?

c++ - 更改dll对windows的依赖

C#调用具有复杂结构的deviceIOControl

c++ - 将第一个值插入链表时尝试访问头部时出现段错误

c - 当我从文件中读取时打印出意想不到的结果

c - 按位运算

multithreading - 如何使用 g++ 在 64 位 Solaris sparc 上编译线程本地存储 (TLS)