AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 952271
Accepted
codenaugh
codenaugh
Asked: 2019-02-05 10:07:09 +0800 CST2019-02-05 10:07:09 +0800 CST 2019-02-05 10:07:09 +0800 CST

LDD 在 sol11_64 位上找不到库

  • 772

我们已经在 Solaris 10 上成功使用 gcc 进行编译。现在我们在 Solaris 11 (sol11_64) 上移植到 64 位。我们使用内部开发的名为 MSP 的库,并在编译期间使用 -wl,rpath(等效于 -R... 也尝试使用 -R)来指定运行时库的位置。在 sol10 上,LDD 的输出显示找到了 2 个 MSP 库中的 2 个。在 sol11_64 上,LDD 输出中现在显示了 3 个库,但无法找到新的库,即使它与其他库位于同一位置。如果我将该位置添加到我的 LD_LIBRARY_PATH,则 LDD 会拾取它。我们不希望使用 LD_LIBRARY_PATH 作为永久解决方案。

sol10 LDD 输出:

    libmsp.so =>     /opt/msp/lib/fiorano/libmsp.so
    libfmq-crtl.so =>        /opt/msp/lib/fiorano/vendor-files/lib/libfmq-crtl.so

sol11_64 LDD 输出:

    libmsp.so =>     /opt/msp/lib/fiorano/libmsp.so
    libfmq-crtl.so =>        /opt/msp/lib/fiorano/vendor-files/lib/libfmq-crtl.so
    libfmq-crtl-ssl.so =>    (file not found)

sol11_64 LDD 输出,路径在 LD_LIBRARY_PATH:

    libmsp.so =>     /opt/msp/lib/fiorano/libmsp.so
    libfmq-crtl.so =>        /opt/msp/lib/fiorano/vendor-files/lib/libfmq-crtl.so
    libfmq-crtl-ssl.so =>    /opt/msp/lib/fiorano/vendor-files/lib/libfmq-crtl-ssl.so

我确实检查了权限:

-rwxr-xr-x   1 root     root        2.0M Dec 18 17:49 libfmq-crtl-ssl.so*
-rwxr-xr-x   1 root     root        2.0M Dec 18 17:49 libfmq-crtl.so*
solaris
  • 1 1 个回答
  • 164 Views

1 个回答

  • Voted
  1. Best Answer
    codenaugh
    2019-02-05T18:21:20+08:002019-02-05T18:21:20+08:00

    由于这个库突然成为对 sol11_64 的新依赖,我需要将它添加到我们的 makefile 中的其他位置,特别是我们的 LIBS 变量,该变量在链接期间与运行时库路径一起传入。我认为这部分告诉它实际寻找哪些库。

    前:

    LIBS := -lpthread -lmsp -lfmq-crtl -lxml2
    

    后:

    LIBS := -lpthread -lmsp -lfmq-crtl -lfmq-crtl-ssl -lxml2
    

    生成文件目标:

    $(EXE): $(MACHOBJ) $(MACH)/main.o
        cd $(MACH); $(CC) -o ../$@ $(OBJ) main.o \
        ../../lib/$(MACH)/libmain.a \
        -L/opt/msp/lib/fiorano \
        -L/opt/msp/lib/fiorano/vendor-files/lib \
        -R/opt/msp/lib/fiorano \
        -R/opt/msp/lib/fiorano/vendor-files/lib \
        $(MACHLFLAGS) $(LIBS) $(MACHLLIBS)
    
    • 2

相关问题

  • 从现有目录创建 zfs 的正确方法?

  • 在 Solaris lp 或 lpr 上打印

  • 如何将 ZFS ACL 从一个文件克隆到另一个文件?

  • Solaris DNS

  • 在 solaris 10 上为 mysql 设置 max_allowed_pa​​cket

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve