用于Linux查看导入的Dumpbin.exe

用于Linux查看导入的Dumpbin.exe,linux,shared-libraries,import,dumpbin,Linux,Shared Libraries,Import,Dumpbin,我不确定我的问题在linux方面是否有意义。我正在从VisualStudioToolkit中搜索类似于dumpbin.exe的东西 基本上,我有一个现有的项目,有一堆库和一个可执行文件。我想弄清楚哪些库是真正需要的,每个库中有哪些函数 我只使用共享对象,因为这个项目的目标是ARM设备。也许你可以使用ldd和nm。ldd将告诉您需要哪些共享对象(也称为win中的dll)。nm将告诉dump这些符号 运行示例: $ ldd a linux-vdso.so.1 => (0x00

我不确定我的问题在linux方面是否有意义。我正在从VisualStudioToolkit中搜索类似于dumpbin.exe的东西

基本上,我有一个现有的项目,有一堆库和一个可执行文件。我想弄清楚哪些库是真正需要的,每个库中有哪些函数


我只使用共享对象,因为这个项目的目标是ARM设备。

也许你可以使用ldd和nm。ldd将告诉您需要哪些共享对象(也称为win中的dll)。nm将告诉dump这些符号

运行示例:

$ ldd a
        linux-vdso.so.1 =>  (0x00007fffd1dff000)
        libc.so.6 => /lib/libc.so.6 (0x00007fcbc97d9000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fcbc9b21000)
$ nm a
0000000000600e40 d _DYNAMIC
0000000000600fe8 d _GLOBAL_OFFSET_TABLE_
00000000004005b8 R _IO_stdin_used
                 w _Jv_RegisterClasses
0000000000601020 A __bss_start
0000000000601008 D __data_start
0000000000601010 D __dso_handle
                 w __gmon_start__
0000000000600e14 d __init_array_end
0000000000600e14 d __init_array_start
00000000004004d0 T __libc_csu_fini
00000000004004e0 T __libc_csu_init
                 U __libc_start_main@@GLIBC_2.2.5
0000000000601020 A _edata
0000000000601028 A _end
00000000004005a8 T _fini
00000000004003c0 T _init
0000000000400400 T _start
0000000000601008 W data_start
00000000004004b8 T main
编辑:忘记了objdump。i、 e:

$ objdump -f a

a:     file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0000000000400400

使用-x将为您提供所有标题(非常详细,但请尝试:)

使用ldd,我会得到“非动态可执行文件”。如果您收到该消息,则所讨论的文件不是动态链接的,而是静态编译的(所有符号都在文件本身中编译,在运行时不使用任何共享对象)