Предположим, x86 64 и платформа Linux.
Если вы посмотрите в заголовок ELF, все смещения будут 64-битными.
Так что легко создать объектный файл размером более 4G с помощью перемещения R_X86_64_64. Это означает, что статический файл .o и исполняемый файл могут быть размером до 64 бит.
Однако для разделяемой библиотеки, такой как gcc, у нас есть только перемещение R_X86_64_PLT32. Это означает, что невозможно создать общую библиотеку размером более 4 ГБ, верно?
Итак, если я хочу создать огромную программу, один из файлов .o достаточно велик (> 4 ГБ), единственный выбор - статическое связывание?
Любой комментарий приветствуется.
Спасибо,
ограни