致命错误:openssl / evp.h:没有这样的文件或目录

时间:2020-04-07 15:14:57

标签: openssl centos7 tls1.3

操作系统:Centos7

我正在尝试构建依赖于openssl的无堆栈python。 我需要使用openssl 1.1.1d支持tls1.3 我在我的makefile文件中添加了tarball openssl-1.1.1d.tar.gz。

当我将其显示为错误下方时,

gcc -fno-strict-aliasing -DSTACKLESS_FRHACK=0 -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include -I./Stackless  -DPYMALLOC_DEBUG -DPYMALLOC_LIMIT_OBJECT_SIZE=268435456 -DSTACKLESS_LIMIT_STACK_SIZE=1310720  -DPy_BUILD_CORE  -c ./Modules/itertoolsmodule.c -o Modules/itertoolsmodule.o
gcc -fno-strict-aliasing -DSTACKLESS_FRHACK=0 -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include -I./Stackless  -DPYMALLOC_DEBUG -DPYMALLOC_LIMIT_OBJECT_SIZE=268435456 -DSTACKLESS_LIMIT_STACK_SIZE=1310720  -DPy_BUILD_CORE  -c ./Modules/_hashopenssl.c -o Modules/_hashopenssl.o
**./Modules/_hashopenssl.c:39:25: fatal error: openssl/evp.h: No such file or directory
 #include <openssl/evp.h>**
                         ^
compilation terminated.
make[1]: *** [Modules/_hashopenssl.o] Error 1
make[1]: Leaving directory `/builddir/project/build/tarball/stackless-2716-export'
make: *** [build/dp-stackless-python-2.7.16.tw1.bfeature-centos7_support_OpenSSL_1.1.1d_for_profiler_scanning_LOCAL.r20200407145948_UNCOMMITTED-6cc0cf0.bLOCAL.tar.bz2] Error 2
ERROR: Command failed. See logs for output.

在stackoverflow上的其他一些资料中,我发现它需要openssl-devel packag。 但是,Centos7不支持支持tls1.3的1.1.1d版本的openssl-devel。

任何人都可以指导我解决此问题吗?

1 个答案:

答案 0 :(得分:0)

您是否考虑使用EPEL 7中可用的openssl11-libsopenssl11-devel RPM软件包,而不是自己构建OpenSSL(以涵盖将来的安全更新)?它提供与RHEL / CentOS 8相同的OpenSSL版本。

在构建依赖于较新的OpenSSL的软件之前,您需要扩展 稍微$CFLAGS$LDFLAGS,例如像这样:

export CFLAGS="$CFLAGS $(pkg-config --cflags openssl11)"
export LDFLAGS="$LDFLAGS $(pkg-config --libs openssl11)"

或者,如果./configure支持直接传递pkg-config *.pc文件,请在此处使用openssl11