【问题标题】:ld.so is not able to load the required librariesld.so 无法加载所需的库
【发布时间】:2014-09-03 10:27:57
【问题描述】:

我们使用具有库路径详细信息(使用 -L 选项编译)的 makefile 创建了我们模块的可执行文件。所有必需的库都存在于该路径中,并且设置为 LD_LIBRARY_PATH 环境变量。但我仍然得到在 dbx 中运行可执行文件时出现以下错误。

  dbx MsgServer
  For information about new features see `help changes'
  To remove this message, put `dbxenv suppress_startup_message 7.2' in your .dbxrc
  Reading MsgServer
  Reading ld.so.1
  ld.so.1: MsgServer: fatal: libcp.so: open
  failed:       No such file or directory
  terminating signal 9 SIGKILL

我无法弄清楚为什么没有链接库。这是 ldd 的输出。

    ldd MsgServer
    libcp.so =>      (file not found)
    libftux.so =>    (file not found)
    libfldap.so =>   (file not found)
    libfdmq.so =>    (file not found)
    libfbsafe.so =>  (file not found)
    libdmq.so =>     /opt/messageq/lib/libdmq.so
    libmqic.so =>    /usr/lib/libmqic.so
    libsocket.so.1 => /usr/lib/libsocket.so.1
    libc.so.1 =>     /usr/lib/libc.so.1
    libnsl.so.1 =>   /usr/lib/libnsl.so.1
    libdl.so.1 =>    /usr/lib/libdl.so.1
    libCstd.so.1 =>  /usr/lib/libCstd.so.1
    libCrun.so.1 =>  /usr/lib/libCrun.so.1
    libm.so.1 =>     /usr/lib/libm.so.1
    libw.so.1 =>     /usr/lib/libw.so.1
    libthread.so.1 => /usr/lib/libthread.so.1
    libmqmcs.so =>   /usr/lib/libmqmcs.so
    librt.so.1 =>    /usr/lib/librt.so.1
    libmqiz.so =>    /opt/mqm/lib/libmqiz.so
    libmp.so.2 =>    /usr/lib/libmp.so.2
    libaio.so.1 =>   /usr/lib/libaio.so.1
    /usr/platform/SUNW,Sun-Fire/lib/libc_psr.so.1
    /usr/lib/cpu/sparcv8plus/libCstd_isa.so.1

任何帮助将不胜感激。

【问题讨论】:

  • LD_LIBRARY_PATH 是否已导出?库是否在正确的目录中?这些库是否使用与您的应用相同的 ABI 和 CPU 编译?
  • LD_LIBRARY_PATH 已导出,当我回显该变量并且所有库都使用与我的应用程序相同的 CPU 编译时,我能够看到路径
  • 二进制是 SUID(设置 UID)程序吗?还是您以root身份运行?您似乎在 Solaris 上运行。请注意,LD_LIBRARY_PATH 不适用于 SUID 程序。

标签: c gcc


【解决方案1】:

您的 LD_LIBRARY_PATH 是否已导出?您需要将其导出。

【讨论】:

  • 但是我可以看到那些库从一个用户链接到我的二进制文件,但看不到它们从同一服务器上的另一个用户链接到我的可执行文件。路径设置为 LD_LIBRARY_PATH 并在两个用户配置文件中导出。
猜你喜欢
  • 2021-08-01
  • 1970-01-01
  • 2013-07-17
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 2012-01-18
  • 2016-02-26
  • 1970-01-01
相关资源
最近更新 更多