Jer*_*ain 7 c linux curl openssl
我下载了curl7.40源代码,我已经编译了openssl 1.0.2源代码,现在我想用openssl 1.0.2编译curl.
./configure --prefix=/usr/local/curl-7.40.0 --with-ssl
--with-libssl-prefix=/usr/local/openssl-1.0.2
make && make install
Run Code Online (Sandbox Code Playgroud)
我安装后,我发现卷曲库但仍然与系统默认库链接.
ldd libcurl.so
linux-vdso.so.1 => (0x00007fff2db2e000)
libidn.so.11 => /usr/lib/x86_64-linux-gnu/libidn.so.11 (0x00007fafb9b6e000)
librtmp.so.0 => /usr/lib/x86_64-linux-gnu/librtmp.so.0 (0x00007fafb9954000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fafb96f5000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
(0x00007fafb931b000)
...
更新
经过一些搜索,我使用下面的命令来配置.
./configure --prefix=/usr/local/curl-7.40.0 --with-ssl=/usr/local/openssl-1.0.2
但是当make install时,它会显示以下错误信息.
../lib/.libs/libcurl.so: undefined reference to `SSLv2_client_method'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
问题可能出在您构建 OpenSSL 库的方式上。
您可能在构建 openssl 时禁用了 SSLv2,因为某些发行版默认禁用 SSLv2。在编译 OpenSSL 时查看./config您的系统,并找到控制 OPENSSL_NO_SSL2 预处理器标志的选项。
为了在从源代码制作时使用正确版本的 openssl,您可以像这样制作 openssl:
cd <path-to-openssl-dir>
./config enable-ssl2 enable-ssl3 --prefix=<path-to-openssl-install-dir>
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过以下方式将您的curl版本正确链接到openssl:
./configure --with-ssl=<path-to-openssl-install-dir>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5047 次 |
| 最近记录: |