我从curl官方网站下载了最新的tar文件并尝试构建它。我按照以下步骤操作:
cd 卷曲-8.8.0 sudo ./configure --with-openssl 须藤制作
但是在我最后执行 sudo make 之后,我得到了这些错误:
make[2]: Entering directory '/usr/src/curl-8.8.0/src'
CCLD curl
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get_group_name'
../lib/.libs/libcurl.so: undefined reference to `SSL_get0_group_name'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get_security_bits'
../lib/.libs/libcurl.so: undefined reference to `X509_STORE_load_file'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get_id'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get_bits'
../lib/.libs/libcurl.so: undefined reference to `SSL_get1_peer_certificate'
../lib/.libs/libcurl.so: undefined reference to `X509_STORE_load_path'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get_bn_param'
../lib/.libs/libcurl.so: undefined reference to `EVP_PKEY_get0_type_name'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:1048: curl] Error 1
make[2]: Leaving directory '/usr/src/curl-8.8.0/src'
make[1]: *** [Makefile:1553: all-recursive] Error 1
make[1]: Leaving directory '/usr/src/curl-8.8.0/src'
make: *** [Makefile:1224: all-recursive] Error 1
在google上搜索了一下,发现这可能是由于openssl版本较旧而发生的,所以即使我将openssl更新到最新版本:
$ openssl --version
OpenSSL 3.3.1 4 Jun 2024 (Library: OpenSSL 3.3.1 4 Jun 2024)
主机详情:
$ uname -a
Linux alpps789 4.18.0-513.24.1.el8_9.x86_64 #1 SMP Thu Mar 14 14:20:09 EDT 2024 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/redhat-release
Red Hat Enterprise Linux release 8.10 (Ootpa)
任何人都可以帮助我理解为什么 libcurl.so 会抛出此错误以及采取哪些步骤来修复它?
我尝试更新 openssl 版本,因为大多数社区都说旧版本的 openssl 有问题。
感谢您的帮助。现在已经解决了。一切都是正确的。唯一缺少的是 libssl.so 存在于 /usr/lib64/ 中的符号链接指向旧的 libssl。更改了符号链接以指向最新的 libssl,效果非常好!再次感谢大家。