我在HP-UX上编译完一个程序的时候,ldd 这个binary的时候发现程序link的lib并不是按照我在环境变量中设置的SHLIB_PATH,而是取了其他值.这个很奇怪,感觉link 的lib被hardcode。

ldd $ARBORBIN/MRM
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr/lib/libxti.2 =>    /usr/lib/libxti.2
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/lib/libm.2 =>      /usr/lib/libm.2
        /usr/lib/libcl.2 =>     /usr/lib/libcl.2
        /usr/lib/libisamstub.1 =>       /usr/lib/libisamstub.1
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr1/arbor/3p/oracle/HPUX/lib/libclntsh.sl.9.0 =>      /usr1/arbor/3p/oracle/HPUX/lib/libclntsh.sl.9.0
        /usr/lib/libcl.2 =>     /usr/lib/libcl.2
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/lib/libm.2 =>      /usr/lib/libm.2
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr/lib/libnss_dns.1 =>        /usr/lib/libnss_dns.1
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr/lib/libpthread.1 =>        /usr/lib/libpthread.1
        /usr/lib/librt.2 =>     /usr/lib/librt.2
        /db/ora_mnt1/app/oracle/product/9.2.0.5_Client/lib32/libwtc9.sl =>      /usr1/arbor/3poracle/HPUX/lib/libwtc9.sl
        /usr/lib/libpthread.1 =>        /usr/lib/libpthread.1
        /usr1/arbor/src/lib/liboam_emit.sl =>   /usr1/arbor/src/lib/liboam_emit.sl
        /usr/lib/libstd_v2.2 => /usr/lib/libstd_v2.2
        /usr/lib/libCsup_v2.2 =>        /usr/lib/libCsup_v2.2
        /usr1/arbor/src/lib/libismutil.sl =>    /usr1/arbor/src/lib/libismutil.sl

env |grep SH

15:SHLIB_PATH=/usr1/arbor/3pACE/ACE_wrappers/build/HPUX/ace:/usr1/arbor/3p/rosette/HPUX/rel/lib/

:/opt/app/oracle/product/9.2.0.5/lib32:/usr1/arbor/idesign_site/lib:/usr1/arbor/3pxml/xerces/HPUX/lib:/app/arborperl/5.8.2/lib.....

这样子的话,当程序放到客户的环境上是,客户那根本没有/usr1/arbor/3p/oracle/HPUX/lib这个目录,肯定就是找不到这个文件了.

于是在客户的环境上,出现了以下问题:
celcom@milhpit1@CELTCUS:/home/tss/celcom/celcom_tss/yyang 35 : ./MRM
/usr/lib/dld.sl: Can't open shared library: /usr1/arbor/3p/oracle/HPUX/lib/libclntsh.sl.9.0
/usr/lib/dld.sl: No such file or directory
Abort (core dumped)

celcom@milhpit1@CELTCUS:/home/tss/celcom/celcom_tss/yyang 54 : ldd  MRM
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr/lib/libxti.2 =>    /usr/lib/libxti.2
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/lib/libm.2 =>      /usr/lib/libm.2
        /usr/lib/libcl.2 =>     /usr/lib/libcl.2
        /usr/lib/libisamstub.1 =>       /usr/lib/libisamstub.1
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
/usr/lib/dld.sl: Can't open shared library: /usr1/arbor/3p/oracle/HPUX/lib/libclntsh.sl.9.0
/usr/lib/dld.sl: No such file or directory

最后找到一个workaround方法,就是不用改程序,只是用chatr +s enable MRM
celcom@milhpit1@CELTCUS:/home/tss/celcom/celcom_tss/yyang 61 : chatr +s enable MRM
MRM:
   current values:
         normal executable
         shared library dynamic path search:
             SHLIB_PATH     disabled  second
             embedded path  disabled  first  Not Defined
         shared library list:
             dynamic   /usr1/arbor/src/lib/libismutil.sl
             dynamic   /usr/lib/libCsup_v2.2
             dynamic   /usr/lib/libstd_v2.2
             dynamic   /usr1/arbor/src/lib/liboam_emit.sl
             dynamic   /usr/lib/libpthread.1
             dynamic   /usr1/arbor/3p/oracle/HPUX/lib/libclntsh.sl.9.0
             dynamic   /usr/lib/libcl.2
             dynamic   /usr/lib/libm.2
             dynamic   /usr/lib/libc.2
             dynamic   /usr/lib/libxti.2
             static    /usr/lib/libdld.2
         shared library binding:
             deferred
         global hash table disabled
         plabel caching disabled
         global hash array size:1103
         global hash array nbuckets:3
         shared vtable support disabled
         explicit unloading enabled
         static branch prediction disabled
         executable from stack: D (default)
         kernel assisted branch prediction enabled
         lazy swap allocation disabled
         text segment locking disabled
         data segment locking disabled
         third quadrant private data space disabled
         fourth quadrant private data space disabled
         third quadrant global data space disabled
         data page size: D (default)
         instruction page size: D (default)
         nulptr references disabled
         shared library private mapping disabled
         shared library text merging disabled
   new values:
         normal executable
         shared library dynamic path search:
             SHLIB_PATH     enabled   second
             embedded path  disabled  first  Not Defined
         shared library list:
             dynamic   /usr1/arbor/src/lib/libismutil.sl
             dynamic   /usr/lib/libCsup_v2.2
             dynamic   /usr/lib/libstd_v2.2
             dynamic   /usr1/arbor/src/lib/liboam_emit.sl
             dynamic   /usr/lib/libpthread.1
             dynamic   /usr1/arbor/3p/oracle/HPUX/lib/libclntsh.sl.9.0
             dynamic   /usr/lib/libcl.2
             dynamic   /usr/lib/libm.2
             dynamic   /usr/lib/libc.2
             dynamic   /usr/lib/libxti.2
             static    /usr/lib/libdld.2
         shared library binding:
             deferred
         global hash table disabled
         plabel caching disabled
         global hash array size:1103
         global hash array nbuckets:3
         shared vtable support disabled
         explicit unloading enabled
         static branch prediction disabled
         executable from stack: D (default)
         kernel assisted branch prediction enabled
         lazy swap allocation disabled
         text segment locking disabled
         data segment locking disabled
         third quadrant private data space disabled
         fourth quadrant private data space disabled
         third quadrant global data space disabled
         data page size: D (default)
         instruction page size: D (default)
         nulptr references disabled
         shared library private mapping disabled
         shared library text merging disabled

我们ldd看一下:
celcom@milhpit1@CELTCUS:/home/tss/celcom/celcom_tss/yyang 62 : ldd MRM                /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr/lib/libc.2 =>      /lib/libc.2
        /usr/lib/libdld.2 =>    /lib/libdld.2
        /usr/lib/libxti.2 =>    /lib/libxti.2
        /usr/lib/libc.2 =>      /lib/libc.2
        /usr/lib/libm.2 =>      /lib/libm.2
        /usr/lib/libcl.2 =>     /lib/libcl.2
        /usr/lib/libisamstub.1 =>       /lib/libisamstub.1
        /usr/lib/libdld.2 =>    /lib/libdld.2
        /usr1/arbor/3p/oracle/HPUX/lib/libclntsh.sl.9.0 =>      /opt/app/oracle/product/9.2.0.5/lib32/libclntsh.sl.9.0
        /usr/lib/libcl.2 =>     /lib/libcl.2
        /usr/lib/libc.2 =>      /lib/libc.2
        /usr/lib/libm.2 =>      /lib/libm.2
        /usr/lib/libdld.2 =>    /lib/libdld.2
        /usr/lib/libnss_dns.1 =>        /lib/libnss_dns.1
        /usr/lib/libdld.2 =>    /lib/libdld.2
        /usr/lib/libpthread.1 =>        /lib/libpthread.1
        /usr/lib/librt.2 =>     /lib/librt.2
        /opt/app/oracle/product/9.2.0.5/lib32/libwtc9.sl =>     /opt/app/oracle/product/9.2.0.5/lib32/libwtc9.sl
        /usr/lib/libpthread.1 =>        /lib/libpthread.1
        /usr1/arbor/src/lib/liboam_emit.sl =>   /home/tss/celcom/celcom_tss/site_specific/lib/liboam_emit.sl
        /usr/lib/libstd_v2.2 => /lib/libstd_v2.2
        /usr/lib/libCsup_v2.2 =>        /lib/libCsup_v2.2

/usr1/arbor/src/lib/libismutil.sl =>    /home/tss/celcom/celcom_tss/site_specific/lib/libismutil.sl

in summary :The chatr +s enable option allows a program to utilize SHLIB_PATH to locate shared libraries.

HP-UX /usr/lib/dld.sl: Can't open shared library:解决办法相关推荐

  1. /usr/lib/dld.sl: Can't find path for shared library

    在hp-ux上调试时出现了, /usr/lib/dld.sl: Can't find path for shared library: **.sl /usr/lib/dld.sl: No such f ...

  2. ORACLE:ORA-03113 /usr/lib/dld.sl: Unresolved symbol: gethrtime (code)

    ERROR: ORA-03113 /usr/lib/dld.sl: Unresolved symbol: gethrtime (code) DB:ORACLE 8.1.7.4 os:hp-ux 11. ...

  3. /usr/lib/deepin-wine/wine: error while loading shared libraries: libwine.so.1

    deepin-wine安装后,安装其他应用出现一下错误: /usr/lib/deepin-wine/wine: error while loading shared libraries: libwin ...

  4. ubuntu: /lib/modules/xx/build 目录不存在的解决办法(安装Linux headers失败)

    ubuntu: /lib/modules/xx/build 目录不存在的解决办法 欢迎关注微信公众号<嵌入式大本营>(zjf18770701843) 之前遇到过这个问题,当时费了很大的劲才 ...

  5. HP Envy系列重装系统时找不到磁盘驱动器的解决办法

    HP Envy系列重装系统时找不到磁盘驱动器的解决办法 1.系统出现少量不正常,但可以进入桌面时:      采用硬盘法重装:      这种方法是最简单的,因为要解决上述的无法找到磁盘驱动器问题,只 ...

  6. Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915解决办法

    sudo update-initramfs -u 在更新内核的时候发生如下错误 update-initramfs: Generating /boot/initrd.img-4.15.0-88-gene ...

  7. 安装打印机一直显示设备未连接到服务器,HP M401驱动安装失败 一直显示连接设备无法安装的解决办法...

    HP LaserJet Pro 400 M401 - 安装驱动时一直显示连接设备,无法安装 解决方案 HP LaserJet Pro 400 M401打印机usb线直接连接时,安装驱动时一直显示连接设 ...

  8. /usr/lib/hpux32/dld.so: Unable to find library ‘libintl.so‘

    HPUX 11.31 + 19C rac 安装,GI及db软件都已经安装成功了,应用补丁时报了这个奇葩的错误 grid$$ORACLE_HOME/cfgtoollogs/opatchauto下日志报错 ...

  9. Oracle asm aix盘,AIX/HP UX/LINUX上ORACLE ASM添加磁盘

    一.操作系统设置 1.LINUX操作系统 (1).扫描映射到主机的磁盘 需要重启(两个节点都需要) (2).通过lun id来查找新映射过来的磁盘,可以通过存储厂商提供的多路径来查看,两台服务器上新映 ...

最新文章

  1. android studio 发布项目的流程
  2. springcloud完整项目_.net core+Spring Cloud学习之路 一
  3. 让一个 csproj 项目指定多个开发框架
  4. github如何删除一个repository【找不到settings】
  5. shell 文件 开头的格式
  6. 加密解密技术基础、PKI及创建私有CA
  7. 用计算机弹奇迹再现谱子,《原神》奇迹再现乐谱分享 风物之诗琴乐谱分享
  8. android 通用驱动程序下载,安卓手机通用驱动官方下载-安卓手机通用驱动(Universal Adb Driver)下载v2017 官方最新版-当易网...
  9. 【3dmax千千问】初学3dmax插件神器第20课:3dmax渲染教程|效果图大师和疯狂模渲大师怎么使用3dmax软件自带的渲染器去设计并渲染三维效果图场景的3dmax模型?
  10. 第二章、Magick命令组合多个图像处理操作
  11. 联想y7000笔记如何安装matlab,联想y7000p安装配置ubuntu笔记
  12. 安卓温升thermal介绍
  13. python鼠标移动到网页上、获取网页信息_python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法...
  14. oel+oracle,OEL7.6安装Oracle Database 19C(VERSION 19.3.0.0)
  15. SEO 优化--助力网站推广
  16. 如何用c语言给信息加密,求助:如何用C语言实现LFSR加密
  17. 开源分享 | java项目 | 亲戚计算器
  18. 台湾繁体字和大陆汉语转换
  19. Vue——props配置
  20. P4735 贪心 + 可持久化 Trie

热门文章

  1. DS1337实时时钟接口电路
  2. android camera移动方向_Android Camera开发系列:调整Camera预览方向
  3. 关于加载fonts.useso.com导致页面加载过慢问题
  4. 从 chromium 源码来窥探浏览器的渲染
  5. 写一篇anytxt searcher软件的评测文章
  6. 成功开发iPhone软件的10个步骤
  7. 某企业每月给其A、B、C 和D 四个门店一共发送6 个集装箱的某种货物,如果各门店出售该种货物的利润(万元)如下表:
  8. 打电话com.android.phone,别人给我打电话一直显示通话中,我手机显示“com.android.phone”已停止,怎么处理啊...
  9. 安装nextcloud+Onlyoffice
  10. Jira SynapseRT For Test Case