我下载的是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
我安装后,我lddcurl库,但仍然链接到系统默认库。 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) ...
UPDATE
经过一番search,我使用下面的命令进行configuration。
./configure --prefix=/usr/local/curl-7.40.0 --with-ssl=/usr/local/openssl-1.0.2
GetwindowText挂在Windows 10上
在shm_unlink之后访问内存
如何从Windows MessageBox接收反馈?
我怎么才能find一个任意进程运行在WOW64下?
如何知道EDIT控件中的偏移量来绘制文本?
../lib/.libs/libcurl.so: undefined reference to `SSLv2_client_method' collect2: error: ld returned 1 exit status
在C#中使用/或\用于文件夹path
Qtanimation无animation框架
启动默认的电子邮件客户端,以打开一个“发送电子邮件”窗口与预选的文件附件
最简单的Ubuntu GUI应用程序
是否lseek()O(1)复杂?
问题可能在于如何构建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>
然后,你可以正确地链接你的curl版本来openssl:
./configure --with-ssl=<path-to-openssl-install-dir>
SSLv2_client_method()用在lib / vtls / openssl.c行1575中,通过autoconf 检查这个函数的可用性。 在我看来,autoconf的AC_CHECK_FUNCS错误地发现你的系统安装openssl之前已经启用了SSLv2 #include你自己安装的没有SSLv2_client_method()的openssl-1.0.2,因此假定函数可用。
尝试传递CFLAGS=-I/usr/local/openssl-1.0.2/include甚至是"CFLAGS=-I/usr/local/openssl-1.0.2/include -DOPENSSL_NO_SSL2"作为参数./configure强制openssl.c使SSLv2_client_method()错误地被认为是可用的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。