so 文件查看依赖项目 和 依赖库搜索路径

ldd

ldd xxx.so

查看 so 的依赖文件,如果成功,会显示相应的路径地址。

如果 依赖 so 找不到会显示 not found

readelf

readelf -d xxx.so

会显示 so 依赖库查找目录, 默认有系统的 /lib 或 /lib64 

${ORIGIN} 是当前目录

具体有什么目录是编译的时候决定的。

readelf 还有其他一些功能,在这里大概列一下

-a , --all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I 。
-h , --file-header 显示 elf 文件开始的文件头信息.
-l , --program-headers , --segments 显示程序头(段头)信息(如果有的话)。
-S , --section-headers , --sections 显示节头信息(如果有的话)。
-g , --section-groups 显示节组信息(如果有的话)。
-t , --section-details 显示节的详细信息( -S 的)。
-s , --syms , --symbols 显示符号表段中的项(如果有的话)。
-e , --headers 显示全部头信息,等价于: -h -l -S
-n , --notes 显示 note 段(内核注释)的信息。
-r , --relocs 显示可重定位段的信息。
-u , --unwind 显示 unwind 段信息。当前只支持 IA64 ELF 的 unwind 段信息。
-d , --dynamic 显示动态段的信息。
-V , --version-info 显示版本段的信息。
-A , --arch-specific 显示 CPU 构架信息。
-D , --use-dynamic 使用动态段中的符号表显示符号,而不是使用符号段。
-x , --hex-dump= 以16进制方式显示指定段内内容。 number 指定段表中段的索引,或字符串指定文件中的段名。
-w[liaprmfFsoR] or –debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges] 显示调试段中指定的内容。
-I , --histogram 显示符号的时候,显示 bucket list 长度的柱状图。
-v , --version 显示 readelf 的版本信息。
-H , --help 显示 readelf 所支持的命令行选项。
-W , --wide 宽行输出。

你可能感兴趣的:(随手记录,C++,linux)