создайте двоичный файл linux (исполняемый), содержащий только константные данные - PullRequest
0 голосов
/ 07 апреля 2020

На Linux с использованием любого компьютерного скрипта / языка, есть ли способ создать / сгенерировать двоичный файл (исполняемый файл), который ТОЛЬКО имеет постоянные данные без каких-либо функций / main ()? Например, у нас есть следующая структура (в формате C), и двоичный файл будет иметь только следующие постоянные данные:

const struct {
    uint32_t mag;
    uint16_t ver;
    uint16_t par_no;
    uint32_t level;
} foo = {1, 2, 3, 0};

1 Ответ

0 голосов
/ 07 апреля 2020

Да, легко:

$ cat foo.c
#include <stdint.h>
const struct {
    uint32_t mag;
    uint16_t ver;
    uint16_t par_no;
    uint32_t level;
} foo = {1, 2, 3, 0};

$ gcc foo.c -c -o foo.o

$ ld foo.o -o foo
ld: warning: cannot find entry symbol _start; defaulting to 0000000000401000

(предупреждение не является фатальным).

Полученный исполняемый файл имеет 12-байтовый сегмент .rodata и сегмент .text отсутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...