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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容