我试图将二进制blob嵌入到exe文件中.我正在使用mingw gcc.
我像这样制作目标文件:
ld -r -b binary -o binary.o input.txt
Run Code Online (Sandbox Code Playgroud)
然后我看objdump输出来获取符号:
objdump -x binary.o
Run Code Online (Sandbox Code Playgroud)
它给出了符号:
_binary_input_txt_start
_binary_input_txt_end
_binary_input_txt_size
Run Code Online (Sandbox Code Playgroud)
然后我尝试在我的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;
}
Run Code Online (Sandbox Code Playgroud)
然后我这样编译:
gcc -o test.exe test.c binary.o
Run Code Online (Sandbox Code Playgroud)
但我总是得到:
undefined reference to _binary_input_txt_start
Run Code Online (Sandbox Code Playgroud)
有谁知道我做错了什么?