• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Linux动态链接库加载失败一例

Linux动态链接库加载失败一例

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了linux 动态链接库,linux生成动态链接库,加载动态链接库失败,加载动态链接库,无法加载动态链接库等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Linux动态链接库加载失败一例


安装pacemakerrpm包后,遇到启动失败的情况,原因和动态链接库的加载有关,以下是详细。


问题

编译生成pacemaker 1.1.15的rpm包,然后在其它机器上安装pacemaker rpm包后,启动失败。

[root@srdsdevapp73 ~]# service pacemaker startStarting Pacemaker Cluster Manager                         [FAILED] 

环境

  • CentOS 6.3 64bit

原因

通过strace发现pacemaker启动失败由于加载库libcoroipcc.so.4失败

[root@srdsdevapp73 ~]# strace -f service pacemaker start...[pid 19960] writev(2, [{"pacemakerd", 10}, {": ", 2}, {"error while loading shared libra"..., 36}, {": ", 2}, {"libcoroipcc.so.4", 16}, {": ", 2}, {"cannot open shared object file", 30}, {": ... 

再用ldd检查pacemakerd,发现总共有3个库找不到

[root@srdsdevapp73 ~]# ldd /usr/sbin/pacemakerd    linux-vdso.so.1 =>  (0x00007fffc4c9f000)    libcrmcluster.so.4 => /usr/lib/libcrmcluster.so.4 (0x0000003cbac00000)    libstonithd.so.2 => /usr/lib/libstonithd.so.2 (0x0000003cba400000)    libcrmcommon.so.3 => /usr/lib/libcrmcommon.so.3 (0x0000003cb4c00000)    libm.so.6 => /lib64/libm.so.6 (0x0000003cb3c00000)    libcpg.so.4 => /usr/lib64/libcpg.so.4 (0x00007f3f72199000)    libcfg.so.6 => /usr/lib64/libcfg.so.6 (0x00007f3f71f95000)    libcmap.so.4 => /usr/lib64/libcmap.so.4 (0x00007f3f71d8f000)    libquorum.so.5 => /usr/lib64/libquorum.so.5 (0x00007f3f71b8b000)    libgnutls.so.26 => /usr/lib64/libgnutls.so.26 (0x0000003cb8800000)    libcorosync_common.so.4 => /usr/lib64/libcorosync_common.so.4 (0x00007f3f71988000)    libplumb.so.2 => /usr/lib64/libplumb.so.2 (0x00007f3f71754000)    libpils.so.2 => /usr/lib64/libpils.so.2 (0x00007f3f7154b000)    libqb.so.0 => /usr/lib64/libqb.so.0 (0x00007f3f712e6000)    libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003cb2c00000)    libbz2.so.1 => /lib64/libbz2.so.1 (0x0000003cb7000000)    libxslt.so.1 => /usr/lib64/libxslt.so.1 (0x0000003cb4800000)    libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x0000003cb6000000)    libc.so.6 => /lib64/libc.so.6 (0x0000003cb2400000)    libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003cb5000000)    libpam.so.0 => /lib64/libpam.so.0 (0x0000003cb6c00000)    librt.so.1 => /lib64/librt.so.1 (0x0000003cb3000000)    libdl.so.2 => /lib64/libdl.so.2 (0x0000003cb2800000)    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003cb3800000)    libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x0000003cb8400000)    libcoroipcc.so.4 => not found    libcfg.so.4 => not found    libconfdb.so.4 => not found    libtasn1.so.3 => /usr/lib64/libtasn1.so.3 (0x0000003cb7800000)    libz.so.1 => /lib64/libz.so.1 (0x0000003cb3400000)    libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x0000003cb7400000)    /lib64/ld-linux-x86-64.so.2 (0x0000003cb2000000)    libaudit.so.1 => /lib64/libaudit.so.1 (0x0000003cb6400000)    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003cb5c00000)    libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x0000003cb6800000)    libfreebl3.so => /lib64/libfreebl3.so (0x0000003cb5800000) 

上面有一段"/usr/lib/libcrmcluster.so.4"比较奇怪,确认后发现文件不对,是以前安装的版本(不清楚当初怎么安装的了)。 正确的库位置应该是"/usr/lib64/libcrmcluster.so.4"。 将老版本的pacemaker删除后,一切正常

[root@srdsdevapp73 ~]# rm -f /usr/lib/libcrm*[root@srdsdevapp73 ~]# rm -f /usr/lib/libstonithd.*[root@srdsdevapp73 ~]# ldd /usr/sbin/pacemakerd    linux-vdso.so.1 =>  (0x00007fff9a3ff000)    libcrmcluster.so.4 => /usr/lib64/libcrmcluster.so.4 (0x00007f849a1fc000)    libstonithd.so.2 => /usr/lib64/libstonithd.so.2 (0x00007f8499fea000)    libcrmcommon.so.3 => /usr/lib64/libcrmcommon.so.3 (0x00007f8499d93000)    libm.so.6 => /lib64/libm.so.6 (0x0000003cb3c00000)    libcpg.so.4 => /usr/lib64/libcpg.so.4 (0x00007f8499b8c000)    libcfg.so.6 => /usr/lib64/libcfg.so.6 (0x00007f8499988000)    libcmap.so.4 => /usr/lib64/libcmap.so.4 (0x00007f8499782000)    libquorum.so.5 => /usr/lib64/libquorum.so.5 (0x00007f849957e000)    libgnutls.so.26 => /usr/lib64/libgnutls.so.26 (0x0000003cb8800000)    libcorosync_common.so.4 => /usr/lib64/libcorosync_common.so.4 (0x00007f849937b000)    libplumb.so.2 => /usr/lib64/libplumb.so.2 (0x00007f8499147000)    libpils.so.2 => /usr/lib64/libpils.so.2 (0x00007f8498f3e000)    libqb.so.0 => /usr/lib64/libqb.so.0 (0x00007f8498cd9000)    libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003cb2c00000)    libbz2.so.1 => /lib64/libbz2.so.1 (0x0000003cb7000000)    libxslt.so.1 => /usr/lib64/libxslt.so.1 (0x0000003cb4800000)    libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x0000003cb6000000)    libc.so.6 => /lib64/libc.so.6 (0x0000003cb2400000)    libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003cb5000000)    libpam.so.0 => /lib64/libpam.so.0 (0x0000003cb6c00000)    librt.so.1 => /lib64/librt.so.1 (0x0000003cb3000000)    libdl.so.2 => /lib64/libdl.so.2 (0x0000003cb2800000)    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003cb3800000)    libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x0000003cb8400000)    libtasn1.so.3 => /usr/lib64/libtasn1.so.3



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Linux动态链接库加载失败一例

相关文章

  • 2017-05-26cordova开发自定义插件
  • 2017-05-26Android事件分发
  • 2017-05-26Android-ViewPager的使用
  • 2017-05-26Android ViewTreeObserver(转载),viewtreeobserver
  • 2017-05-26硅谷新闻5--顶部新闻轮播图事件处理,硅谷5--
  • 2017-05-26第二个activity,启动第二个activity
  • 2017-05-227.3.1 Android 文件上传
  • 2017-05-26zabbix监控tomcat出现"Connection refused to host: 127.0.0.1"的故障解决
  • 2017-05-26Android数据存储方式--SharedPreferences,sharedpreferences
  • 2017-05-26360多渠道打包,360打包

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Kerberos简介
    • Kotlin中when表达式的使用:超强的switch(KAD 13),kotlinkad
    • 深入理解RCU实现
    • Android—Service与Activity的交互,androidactivity
    • Android之利用HTTP网络通信实现与PHP的交互(三),android网络通信
    • Android View体系(二)实现View滑动的六种方法
    • android studio快捷键,androidstudio
    • Android SwipeRefreshLayout下拉刷新与上拉加载+滑动删除
    • Android中的自定义控件(二),android自定义控件
    • Android 手机卫士17--缓存清理,android17--

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有