Dumpbin.exe for Linux来查看导入

我不确定我的问题在Linux的方式是有道理的。 我正在寻找一些类似于Visual Studio工具箱中的dumpbin.exe的东西。

基本上我有一个库和一个单一的可执行文件的现有项目。 我想找出哪些库真的需要和每个库中的哪个函数。

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

也许你可以使用ldd和nm。 ldd会告诉你哪些共享对象(又名dll)是需要的。 而nm会告诉转储符号。

示例运行:

$ 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。 即:

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

使用-x会给你所有的标题(非常详细的发布,但试试:))