代码之家  ›  专栏  ›  技术社区  ›  Peter VARGA

如何在openssl的配置脚本中设置--rpath[重复]

  •  0
  • Peter VARGA  · 技术社区  · 7 年前

    这个问题已经有了答案:

    我有不同的 openssl 系统上的版本,我不想安装最新版本 OpenSSL 系统位置的版本-E.Q. /usr/bin/openssl .

    现在,当我编译 OpenSSL 然后我开始跑步 ldd :

    root => ldd /FaF/openssl/bin/openssl
            linux-vdso.so.1 (0x00007ffe60d92000)
        --> libssl.so.1.1 => not found
        --> libcrypto.so.1.1 => not found
            libdl.so.2 => /lib64/libdl.so.2 (0x00007facf337b000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007facf315e000)
            libc.so.6 => /lib64/libc.so.6 (0x00007facf2dbd000)
            /lib64/ld-linux-x86-64.so.2 (0x00007facf357f000)
    

    我指的是 libssl.so.1.1 libcrypto.so.1.1

    正在运行 低密度脂蛋白 前面有 LD_LIBRARY_PATH 作品:

    root => LD_LIBRARY_PATH=/FaF/openssl/lib/ ldd /FaF/openssl/bin/openssl
            linux-vdso.so.1 (0x00007fff221a1000)
            libssl.so.1.1 => /FaF/openssl/lib/libssl.so.1.1 (0x00007f45f842a000)
            libcrypto.so.1.1 => /FaF/openssl/lib/libcrypto.so.1.1 (0x00007f45f7f9a000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007f45f7d96000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f45f7b79000)
            libc.so.6 => /lib64/libc.so.6 (0x00007f45f77d8000)
            /lib64/ld-linux-x86-64.so.2 (0x00007f45f869b000)
    

    /FaF/openssl/lib 是正确库所在的目录。

    我现在有了这些可能的解决方案:

    1. 添加 /faf/openssl/lib文件 /etc/ld.so.conf 和跑步 ldconfig -这实际上不是一个选项,因为它可能会破坏 OpenSSL .
    2. 正如我在上面的例子中所做的,我可以在每次需要之前 OpenSSL LD_LIBRARY_PATH=/FaF/openssl/lib/ -不是一个很好的选择,也不总是可能的。
    3. 我可以 链接 道路与 --rpath=/FaF/openssl/lib 进入之内 OpenSSL .

    我的问题:
    目前我还不知道如何设置 --rpath=/faf/openssl/lib configure 生成的命令 OpenSSL . 有人能提供这个信息吗?

    我试过设置 图书馆路径 LDFLAGS 但没什么用。

    我更喜欢这样的解决方案 硬编码 进入之内 OpenSSL 因此不需要其他设置。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Peter VARGA    7 年前

    好啊。下面是一个非常简单的方法,如何根据我的问题来解决它。

    我跑 ./config -h 得到这个输出:

    root => ./config -h
    Usage: config [options]
     -d     Build with debugging when possible.
     -t     Test mode, do not run the Configure perl script.
     -v     Verbose mode, show the exact Configure call that is being made.
     -h     This help.
    
    Any other text will be passed to the Configure perl script.
    See INSTALL for instructions.
    
    Operating system: x86_64-whatever-linux2
    Configuring for linux-x86_64
    

    文本 Any other text will be passed to the Configure perl script. 一言为定。

    我刚添加了 --rpath 在最后 config 命令如下:
    ./config --prefix=/FaF/openssl threads shared -Wl,--rpath=/FaF/openssl/lib