我已经将一个jpg文件编译成了一个目标文件,并尝试在我的程序中引用它。符号表如下:
user@host:~$ nm binary_artifacts.o
000000000000ade3 D _binary_obj_jpg_end
000000000000ad00 A _binary_obj_jpg_size
00000000000000e3 D _binary_obj_jpg_start
user@host:~$
对于 _binary_obj_jpg_start 和 _binary_obj_jpg_end 符号,使用 char* 访问它们非常简单。然而,_binary_obj_jpg_size 符号让我有些困扰。
我尝试将其声明为:
extern const unsigned int const _binary_obj_jpg_size;
但是当我直接使用该符号时,程序出现了段错误。当我在程序中使用以下代码时,我可以正确获取大小:
extern const unsigned int const _binary_obj_jpg_size;
printf("Size: %d\n", (int)&_binary_obj_jpg_size);
但是将其声明为int,然后取其地址似乎是错误的。
是否有我不知道的“更正确”的方法?