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。
网友评论