linux 库依赖,开发和生产环境,部署问题

在生产环境中测试 发现程序无法运行,所以要分析一下

./mentester: /lib/libtinfo.so6: no uersion information available (required by ,/mentester)
./mentester' /lib/libncursesso.b: no uersion information auailable (required by ./mentester)
myApp uersion 1.2 .0 164-bit
Segmentation fault //这个是我配置文件出错导致,可以忽略

分析问题,

#1.提示是so库有问题,
#2.通过ldd在开发环境找 程序依赖的库
#3.然后cp 这些库,从开发环境到生产环境,
#4. 生产环境,运行OK,问题解决
#开发环境
$ Idd myapp
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”的提示
posted @   scott_h  阅读(119)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示