【发布时间】:2010-10-21 13:59:51
【问题描述】:
假设 x86 64 和 linux 平台。
如果查看 ELF 标头,偏移量都是 64 位。
因此,使用 relocatoin R_X86_64_64 创建大于 4G 的目标文件很容易。这意味着静态 .o 文件和可执行文件的大小可以达到 64 位。
但是,对于像 gcc 这样的共享库,我们只有 R_X86_64_PLT32 重定位。这意味着不可能创建大于 4GB 的共享库,对吧?
所以如果我想构建一个巨大的程序,一个.o文件足够大(> 4GB),唯一的选择是静态链接?
欢迎评论。
谢谢, 限制
【问题讨论】:
标签: gcc compiler-construction 64-bit elf relocation