【complier】如何查看ARM交叉编译的可执行程序依赖的动态库?

Date: 2018.10.16


1、参考

https://www.aliyun.com/jiaocheng/192929.html

2、在Linux PC上查看arm交叉编译的可执行文件依赖的动态库

    在Ubuntu宿主机上查看ARM交叉编译好的可执行程序和库文件的相关依赖关系,类似于PC linux上的ldd命令。
    在电脑上安装的Linux系统中,有一个ldd命令,可以查看对应的可执行文件或库文件依赖哪些库,但可执行文件或库文件要求与操作系统的编译器类型相同,即电脑是X86的GCC编译器,那么无法通过ldd命令查看ARM交叉编译器编译出来的可执行文件或库文件。 如果想在Ubuntu等Linux宿主机上查看ARM交叉编译好的可执行程序和库文件的相关依赖关系,可以采用下面的命令:

readelf -a  ./program_arm | grep "Shared"
或者:
arm-hisiv500-linux-readelf -a ./program_arm  | grep "Shared"
3、示例
[soaringlee@ubuntu]$ readelf -a  ./mpeg2decode | grep "Shared"
0x000000000000001(NEEDED)             Shared library:[libm.so.6]
0x000000000000001(NEEDED)             Shared library:[libc.so.6]
[soaringlee@ubuntu]$ 

说明:从示例中可以看出,可执行文件mpeg2decode的运行依赖于libm.so.6和libc.so.6。


THE END!

原文地址:https://www.cnblogs.com/SoaringLee/p/10532331.html