LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

Храни в отдельной секции ELF-a без флага alloc. Например, у тебя твои данные в файле mydata.dat:

objcopy --add-section .mydata=mydata.dat --set-section-flags .mydata=noload,readonly main.o main_with_data.o
При линковке окончательного бинарника потом используй main_with_data.o а не main.o

При необходимости доступа к данным отмапь её в память (положение секции в файле бинарника в ELF-header есть), и загружаться оно будет по мере обращения к данным.

Для вендов тоже так можно, но без бубна это можно сделать только при помощи mingw (всё так же, как выше, только доступ к секции через PE-header, а не ELF). С ублюдочным MSVC лучше не связываться, там нужно шаманство 80lvl, а раз ты задаёшь такие вопросы, то тебе до этого левела далеко.

Исходная версия Stanson, :

Храни в отдельной секции ELF-a без флага alloc. Например, у тебя твои данные в файле mydata.dat:

objcopy --add-section .mydata=mydata.dat --set-section-flags .mydata=noload,readonly main.o main_with_data.o
При необходимости доступа к данным отмапь её в память, и загружаться оно будет по мере обращения к данным.

Для вендов тоже так можно, но без бубна это можно сделать только при помощи mingw (всё так же, как выше, только доступ к секции через PE-header, а не ELF). С ублюдочным MSVC лучше не связываться, там нужно шаманство 80lvl, а раз ты задаёшь такие вопросы, то тебе до этого левела далеко.