在 Ubuntu 下,如果你是用 GCC 编译程序,想查看程序依赖(通常是动态库依赖),常见做法如下:
ldd 命令ldd your_program
示例输出:
linux-vdso.so.1 (0x00007fff...)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
✅ 适合:查看运行时依赖的 .so 库
⚠️ 注意:
ldd(有安全风险)objdump(更底层)objdump -p your_program | grep NEEDED
示例:
NEEDED libc.so.6
NEEDED libm.so.6
✅ 适合:分析 ELF 文件结构
readelfreadelf -d your_program | grep NEEDED
gcc -v main.c -o main
会显示:
collect2 / ld 参数gcc -### main.c -o main
不会真正编译,只打印命令
dpkg -S libname.so
例如:
dpkg -S libc.so.6
gcc -print-search-dirs
或:
echo | gcc -E -Wp,-v -
gcc main.c -o main -lm
ldd main
输出:
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
如果你的问题是:
.so 依赖可以告诉我具体场景,我可以给你更精确的命令。