小编dam*_*xxx的帖子

使用 RPATH 构建 OpenSSL?

我有 Ubuntu 14.04。它附带了 openssl 1.0.1f。我想安装另一个openssl版本(1.0.2)并且我想自己编译它。

我将其配置如下:

LDFLAGS='-Wl,--export-dynamic -L/home/myhome/programs/openssl/i/lib 
-L/home/myhome/programs/zlib/i/lib'

CPPFLAGS='-I/home/myhome/programs/openssl/i/include 
-I/home/myhome/programs/zlib/i/include'

./config --prefix=/home/myhome/programs/openssl/i \
zlib-dynamic shared --with-zlib-lib=/home/myhome/programs/zlib/i/lib \
--with-zlib-include=/home/myhome/programs/zlib/i/include

make 

make install
Run Code Online (Sandbox Code Playgroud)

安装后,当我用 检查二进制文件时ldd openssl,结果是:

...
libssl.so.1.0.0 => /home/myhome/programs/openssl/i/lib/libssl.so.1.0.0 (0x00007f91138c0000)
libcrypto.so.1.0.0 => /home/myhome/programs/openssl/i/lib/libcrypto.so.1.0.0 (0x00007f9113479000)
...
Run Code Online (Sandbox Code Playgroud)

看起来不错。但是当我检查 ldd 时libssl.so,结果是:

...
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fac70930000)
...
Run Code Online (Sandbox Code Playgroud)

它仍然使用系统版本的libcrypto。我尝试了不同的构建方法,但结果始终保持不变。

我的问题是如何以某种方式配置构建,使其可以对共享库的所有二进制和库依赖项进行硬编码LD_LIBRARY_PATH,而无需使用 或类似的东西。

linux openssl rpath ldd

6
推荐指数
1
解决办法
8189
查看次数

标签 统计

ldd ×1

linux ×1

openssl ×1

rpath ×1