x86平台有ldd可以很方便的查看对库的依赖关系,但在嵌入式linux环境中没有这个命令,替而代之是
CC=$(CROSS_COMPILE)gcc
LDD=$(CROSS_COMPILE)readelf
范例
$(CROSS_COMPILE)readelf -d SDKDemo_video
Dynamic section at offset 0x1a88 contains 22 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libtxdevicesdk.so]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libdl.so.0]
0x00000001 (NEEDED) Shared library: [libstdc++.so.6]
0x00000001 (NEEDED) Shared library: [libc.so.0]
0x0000000c (INIT) 0x87cc
0x0000000d (FINI) 0x96d0
0x00000019 (INIT_ARRAY) 0x11a7c
0x0000001b (INIT_ARRAYSZ) 4 (bytes)
0x0000001a (FINI_ARRAY) 0x11a80
0x0000001c (FINI_ARRAYSZ) 4 (bytes)
0x00000004 (HASH) 0x8108
0x00000005 (STRTAB) 0x84ec
0x00000006 (SYMTAB) 0x824c
0x0000000a (STRSZ) 512 (bytes)
0x0000000b (SYMENT) 16 (bytes)
0x00000015 (DEBUG) 0x0
0x00000003 (PLTGOT) 0x11b60
0x00000002 (PLTRELSZ) 224 (bytes)
0x00000014 (PLTREL) REL
0x00000017 (JMPREL) 0x86ec
0x00000000 (NULL) 0x0

本文介绍在嵌入式Linux环境下使用readelf命令替代ldd的方法,展示如何通过解析命令输出来了解程序依赖的共享库,如libtxdevicesdk.so、libpthread.so.0等。
1306

被折叠的 条评论
为什么被折叠?



