lib/libcmcurl.a(openssl.c.o):在函数‘ossl_sha256sum’中: openssl.c:(.text+0x4d):对‘EVP_MD_CTX_new’未定义的引用
时间: 2023-10-01 12:03:19 浏览: 174
这个错误提示是在编译过程中出现的,它指出在使用`ossl_sha256sum`函数时,链接器找不到`EVP_MD_CTX_new`函数的定义。
这个错误通常是由于缺少OpenSSL库引起的。如果你使用的是Linux操作系统,可以尝试安装OpenSSL库,命令如下:
```
sudo apt-get install libssl-dev
```
如果你使用的是其他操作系统,可以根据对应的包管理工具来安装OpenSSL库。
如果安装OpenSSL库后仍然出现相同的错误,可以检查编译命令中是否正确地链接了该库。在gcc编译命令中,应该加上`-lssl -lcrypto`选项来链接OpenSSL库,例如:
```
gcc -o myprogram myprogram.c -lssl -lcrypto
```
希望这些信息能够帮到你。
相关问题
./nginx: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by ./nginx) ./nginx: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./nginx) ./nginx: /usr/lib64/libcrypto.so.10: version `OPENSSL_1.0.2' not found (required by ./nginx) ./nginx: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libpcre.so.1)
这个错误是由于缺少 GLIBC 和 OpenSSL 库引起的。你需要安装 GLIBC 和 OpenSSL 库的正确版本。可以尝试以下命令:
```
sudo apt-get update
sudo apt-get install libc6
sudo apt-get install libssl1.0.2
```
如果你使用的是其他 Linux 发行版,可以使用相应的包管理器来安装这些库。
我在安装的时候,./config命令执行中出现了:checking for openssl/ssl.h in /usr/local/ssl... no checking for openssl/ssl.h in /usr/lib/ssl... no checking for openssl/ssl.h in /usr/ssl... no checking for openssl/ssl.h in /usr/pkg... no checking for openssl/ssl.h in /usr/local... no checking for openssl/ssl.h in /usr... no
这个问题通常是由于openssl的头文件路径没有包含在系统的默认搜索路径中导致的。您可以尝试以下解决方法:
1. 安装openssl库和头文件
在Ubuntu上,您可以使用以下命令安装:
```shell
sudo apt-get install libssl-dev
```
在CentOS上,您可以使用以下命令安装:
```shell
sudo yum install openssl-devel
```
在macOS上,您可以使用以下命令安装:
```shell
brew install openssl
```
2. 添加openssl头文件路径到系统默认搜索路径
在执行./configure命令之前,您可以使用以下命令将openssl头文件路径添加到系统默认搜索路径中:
```shell
export CPPFLAGS="-I/usr/local/ssl/include"
```
然后,再次执行./configure命令,应该就可以找到openssl的头文件了。
阅读全文