0

操作系统: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包。然而,支持 tls1.3 的 1.1.1d 版本的 openssl-devel 不适用于 Centos7。

谁能指导我解决这个问题?

4

1 回答 1

0

您是否考虑过使用 EPEL 7 中的可用openssl11-libsopenssl11-develRPM 包,而不是自己构建 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在此处使用。

于 2020-05-13T11:41:40.900 回答