ldd查询可执行文件和库对其他库的依赖

1.使用静态库编译出的执行文件与静态库的依赖

[teanee@localhost sdlib]$ ldd test

   linux-vdso.so.1 (0x00007ffdd0197000)

   libc.so.6 => /lib64/libc.so.6 (0x00007f4aa94fa000)

   /lib64/ld-linux-x86-64.so.2 (0x000055630e42b000)

[teanee@localhost sdlib]$ ldd libsd.a

   ldd: warning: you do not have execution permission for `./libsd.a'

   not a dynamic executable

使用静态库编译出的可执行文件是将静态库内代码编译进可执行文件内,所以没有对静态库libsd.a的依赖。

静态库

2.使用动态库编译出的可执行文件与动态库

[teanee@localhost sdlib]$ LD_LIBRARY_PATH=$(pwd) ldd test

   linux-vdso.so.1 (0x00007fff0f9f8000)

   libsd.so => /home/teanee/test/sdlib/libsd.so (0x00007fc3d340d000)

   libc.so.6 => /lib64/libc.so.6 (0x00007fc3d3023000)

   /lib64/ld-linux-x86-64.so.2 (0x000055b6297bf000)

[teanee@localhost sdlib]$ LD_LIBRARY_PATH=$(pwd) ldd libsd.so

   linux-vdso.so.1 (0x00007ffeb5faf000)

   libc.so.6 => /lib64/libc.so.6 (0x00007ff669fa0000)

   /lib64/ld-linux-x86-64.so.2 (0x000055a43b28d000)

用动态库编译出的可执行文件test依赖动态库libsd.so。

你可能感兴趣的:(ldd查询可执行文件和库对其他库的依赖)