在生产环境中测试 发现程序无法运行,所以要分析一下
./mentester: /lib/libtinfo.so6: no uersion information available (required by ,/mentester)
./mentester' /lib/libncursesso.b: no uersion information auailable (required by ./mentester)
memtester uersion 1.2 .0 164-bit
Segmentation fault //这个是我配置文件出错导致,可以忽略
分析问题,
#1.提示是so库有问题,
#2.通过ldd在开发环境找 程序依赖的库
#3.然后cp 这些库,从开发环境到生产环境,
#4. 生产环境,运行OK,问题解决
#开发环境
$ Idd memtester
linux-vdso.so.1 (0x00007fff64d54000)
libi2c.so.0 => /lib/x86 64-linux-gnu/libi2c.so.0 (0x00007fec3c548000)
libncurses.so.6 => /lib/x86 64-linux-gnu/libncurses.so.6 (0x00007fec3c51f000)
libtinfo.so.6 => /lib/x86 64-linux-gnu/libtinfo.so.6 (0x00007fec3c4ed000)
libc.so.6 => /lib/x86 64-linux-gnu/libc.so.6 (0x00007fec3c200000)
lib64/d-inux-x86-64.s.2 (0x00007fec3c5a4000)
#生产环境
$cd /lib
#在这里目录可以看到有哪些库,如果名字不对,版本不匹配, 也能看到。
#有些名字一样,但是依然有问题,就需要替换*.so
#也可以通过whereis libncurses.so.6 试试找位置
# 参考ln -d 软连接
============
参考 https://blog.csdn.net/mayue_web/article/details/104019036
objdump命令
# 查看依赖的库
objdump -x xxx.so | grep NEEDED
# 查看可执行程序依赖的库
objdump -x ./testTime | grep NEEDED
readelf命令
# 查看依赖的库
readelf -a xxx.so | grep "Shared"
# 查看可执行程序依赖的库
readelf -a ./testTime | grep "Shared"
# 查看依赖的库
readelf -d xxx.so
readelf -d ./testTime
# 查看静态库有哪些.o文件
readelf -d xxx.a
ldd命令
# 查看依赖的库
ldd xxx.so
# 查看可执行程序依赖的库
ldd ./testTime
在服务端查看哪些进程在使用某一个so
lsof ***.so
==========
参考2 https://www.cnblogs.com/liushuhe1990/p/9876600.html
在Linux PC上查看arm交叉编译的可执行文件依赖的动态库 紫枫术河
在Ubuntu宿主机上查看ARM交叉编译好的可执行程序和库文件的相关依赖关系,类似于PC linux上的ldd命令。
在电脑上安装的Linux系统中,有一个ldd命令,可以查看对应的可执行文件或库文件依赖哪些库,但可执行文件或库文件要求与操作系统的编译器类型相同,即电脑是X86的GCC编译器,那么无法通过ldd命令查看ARM交叉编译器编译出来的可执行文件或库文件。 如果想在Ubuntu等Linux宿主机上查看ARM交叉编译好的可执行程序和库文件的相关依赖关系,可以采用下面的命令:
arm-arago-linux-gnueabi-readelf -a ./ftdi_eeprom| grep "Shared"
或
readelf -a ./ftdi_eeprom| grep "Shared"
如果要看pc的执行程序的链接库
ldd teat
参考3 https://www.cnblogs.com/silentdoer/p/11748567.html
Linux查看库依赖方法
#1.查看依赖的库:
objdump -x xxx.so | grep NEEDED
#2.查看可执行程序依赖的库:
objdump -x 可执行程序名 | grep NEEDED
#3.查看缺少的库:
ldd xxx.so
#如果某个依赖的库不存在,会打印类似“xxx.so not found”的提示
标签:依赖,查看,ldd,部署,xxx,so,linux
From: https://www.cnblogs.com/scotth/p/17818463.html