Я пытаюсь встроить двоичные объекты в исполняемый файл. Я использую MINGW GCC.
Я делаю объектный файл так:
ld -r -b binary -o binary.o input.txt
Затем я смотрю вывод objdump, чтобы получить символы:
objdump -x binary.o
И это дает символы с именем:
_binary_input_txt_start
_binary_input_txt_end
_binary_input_txt_size
Затем я пытаюсь получить к ним доступ в моей программе на C:
#include <stdlib.h>
#include <stdio.h>
extern char _binary_input_txt_start[];
int main (int argc, char *argv[])
{
char *p;
p = _binary_input_txt_start;
return 0;
}
Затем я собираю так:
gcc -o test.exe test.c binary.o
Но я всегда получаю:
undefined reference to _binary_input_txt_start
Кто-нибудь знает, что я делаю не так?