【发布时间】:2014-08-11 14:12:21
【问题描述】:
我已将 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 然后获取其地址似乎是错误的。
有没有我不知道的“更”正确的方法?
【问题讨论】: