相关疑难解决方法(0)

将OpenSSL库链接到程序

我已经从源代码构建了OpenSSL(一个故意的旧版本;用它构建./config && make && make test)并且更愿意使用我构建的内容而不用make install链接我的程序.

失败的命令是:

gcc -Wall -Wextra -Werror -static -Lopenssl/openssl-0.9.8k/ -lssl -lcrypto 
-Iopenssl/openssl-0.9.8k/include -o myApp source1.o source2.o common.o`
Run Code Online (Sandbox Code Playgroud)

我收到一系列类似的错误:

common.c:(.text+0x1ea): undefined reference to `SSL_write'
Run Code Online (Sandbox Code Playgroud)

这让我觉得我的OpenSSL有点时髦.如果我-Lopenssl/openssl-0.9.8k/从命令中省略,则错误将更改为无法:

/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
Run Code Online (Sandbox Code Playgroud)

我是否错误地编译了OpenSSL?或者我该如何最好地解决这个问题?

linux gcc openssl

16
推荐指数
2
解决办法
4万
查看次数

使用 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
查看次数

在XCode中静态链接OpenSSL

我正在尝试链接libssl.alibcrypto.aXCode命令行项目中的静态库[在Link Binary With Libraries下].我在搜索路径中包含了Openssl头文件.

编译成功但执行失败dyld: Library not loaded: /usr/local/ssl/lib/libcrypto.1.0.0.dylib.

当我静态链接它时,为什么它会寻找dylib?怎么解决这个问题?

任何帮助都会很明显.

xcode openssl dylib static-linking

4
推荐指数
1
解决办法
4316
查看次数

标签 统计

openssl ×3

linux ×2

dylib ×1

gcc ×1

ldd ×1

rpath ×1

static-linking ×1

xcode ×1