同样,我们也得到了一个ELF格式的文件。但是两者略有不同,前者是Executable可执行文件,而后者是可重定位的Relocatable。如果你感兴趣也可以试试共享库文件,其格式依然是ELF,或许会是这样ELF 32-bit LSB shared object。 那么ELF文件内部是怎样存储数据的呢?当然不能再使用vi啦,我们可以使用readelf工具来查看下,以目标...
slub_debug_test_module.ko: ELF 64-bit LSB relocatable, ARM aarch64, version 1 (SYSV), not stripped 查看elf file header readelf -h xxx.ko ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (curren...
test: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked... 以及test.o文件类型为relocatable test.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped 使用readelf查看文件头 这里为了方便就直接在显示结果上添加注释信息 先查看可执行文件 dman@DESKTOP:/mn...
test1/cmake-build-debug/test1: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=45d6523007a7906dfb699d5f6fc66f3f4b7ec720, with debug_info, not stripped ELF 64-bit表示文件是...
relocatable:可重定位 not stripped:没有 stripped 可执行程序: 文件格式:ELF 64bit LSB:小端 executable:可执行 x86-64:平台 statically linked:静态链接 not stripped:没有 stripped 动态库: 文件格式:ELF 64bit LSB:小端 share object:共享文件 x86-64:平台 ...
main.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped 我们看到这里的main.o文件是可重定向( relocatable) 的ELF文件,这里的重定向指的就是我们链接过程中对外部符号的引用。也就是说,编译过的main.o文件对于其中声明的外部符号如foo,x,y,是不知道的。
sub.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped libmymath.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=ce377dde3db662656e8c82c87bb205a883fac582, not stripped ...
可重定位文件(Relocatable File ):这类文件包含代码和数据,可用来连接成可执行文件或共享对象文件(Object File),静态链接库归为此类,对应于 Linux 中的 .o ;Windows 的 .obj. 可执行文件(Executable File ):这类文件包含了可以直接执行的程序,它的代表就是 ELF 可执行文件。Linux 下,他们一般没有扩展名,比如...
I find the compiled .o files are all elf64_x86_64. Not ARM! And I Have the same error when I compile openfst. $ file openfst-1.7.2/src/lib/compat.o openfst-1.7.2/src/lib/compat.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped zrct0 added the bug labe...
用来创建进程映像(执行程序)的文件必须包含program header table。可重组(relocatable)文件可以没有该信息。Section header table包含了用来描述文件section的信息。每个section在该表中都有一个对应的表项,每个表项给出了诸如section名称、尺寸等等信息。用于链接的文件必须有section header table,其他的对象文件可有可...