当尝试使用gcc(Debian 6.2.1-7)6.2.1 20161215编译Python 3.4.3时出现以下错误:
Failed to build these modules:
_hashlib _ssl
再次运行make
时,我得到了更多信息:
$ make
running build
running build_ext
INFO: Can't locate Tcl/Tk libs and/or headers
building '_ssl' extension
gcc -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/home/jj/src/Python-3.4.3/Include -I/home/jj/src/Python-3.4.3 -c /home/jj/src/Python-3.4.3/Modules/_ssl.c -o build/temp.linux-x86_64-3.4/home/jj/src/Python-3.4.3/Modules/_ssl.o
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘_create_tuple_for_X509_NAME’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:694:35: error: dereferencing pointer to incomplete type ‘X509_NAME_ENTRY {aka struct X509_name_entry_st}’
if (rdn_level != entry->set) {
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘_get_peer_alt_names’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:814:16: error: dereferencing pointer to incomplete type ‘X509_EXTENSION {aka struct X509_extension_st}’
p = ext->value->data;
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c:886:17: warning: ‘ASN1_STRING_data’ is deprecated [-Wdeprecated-declarations]
v = PyUnicode_FromStringAndSize((char *)ASN1_STRING_data(as),
^
In file included from /usr/include/openssl/bn.h:31:0,
from /usr/include/openssl/asn1.h:24,
from /usr/include/openssl/rsa.h:16,
from /home/jj/src/Python-3.4.3/Modules/_ssl.c:59:
/usr/include/openssl/asn1.h:553:1: note: declared here
DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
^
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘_get_crl_dp’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:1039:22: error: dereferencing pointer to incomplete type ‘X509 {aka struct x509_st}’
dps = certificate->crldp;
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘PySSL_compression’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:1431:43: error: dereferencing pointer to incomplete type ‘COMP_METHOD {aka const struct comp_method_st}’
if (comp_method == NULL || comp_method->type == NID_undef)
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘context_new’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2012:9: warning: ‘TLSv1_method’ is deprecated [-Wdeprecated-declarations]
ctx = SSL_CTX_new(TLSv1_method());
^~~
In file included from /usr/include/openssl/ct.h:13:0,
from /usr/include/openssl/ssl.h:61,
from /home/jj/src/Python-3.4.3/Modules/_ssl.c:64:
/usr/include/openssl/ssl.h:1596:1: note: declared here
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_method(void)) /* TLSv1.0 */
^
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2015:9: warning: ‘TLSv1_1_method’ is deprecated [-Wdeprecated-declarations]
ctx = SSL_CTX_new(TLSv1_1_method());
^~~
In file included from /usr/include/openssl/ct.h:13:0,
from /usr/include/openssl/ssl.h:61,
from /home/jj/src/Python-3.4.3/Modules/_ssl.c:64:
/usr/include/openssl/ssl.h:1602:1: note: declared here
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */
^
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2017:9: warning: ‘TLSv1_2_method’ is deprecated [-Wdeprecated-declarations]
ctx = SSL_CTX_new(TLSv1_2_method());
^~~
In file included from /usr/include/openssl/ct.h:13:0,
from /usr/include/openssl/ssl.h:61,
from /home/jj/src/Python-3.4.3/Modules/_ssl.c:64:
/usr/include/openssl/ssl.h:1608:1: note: declared here
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */
^
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2025:27: warning: implicit declaration of function ‘SSLv2_method’ [-Wimplicit-function-declaration]
ctx = SSL_CTX_new(SSLv2_method());
^~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2025:27: warning: passing argument 1 of ‘SSL_CTX_new’ makes pointer from integer without a cast [-Wint-conversion]
In file included from /home/jj/src/Python-3.4.3/Modules/_ssl.c:64:0:
/usr/include/openssl/ssl.h:1302:17: note: expected ‘const SSL_METHOD * {aka const struct ssl_method_st *}’ but argument is of type ‘int’
__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
^~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘get_verify_flags’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2275:46: error: dereferencing pointer to incomplete type ‘X509_STORE {aka struct x509_store_st}’
flags = X509_VERIFY_PARAM_get_flags(store->param);
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘load_cert_chain’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2468:48: error: dereferencing pointer to incomplete type ‘SSL_CTX {aka struct ssl_ctx_st}’
pem_password_cb *orig_passwd_cb = self->ctx->default_passwd_callback;
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘cert_store_stats’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3055:20: error: dereferencing pointer to incomplete type ‘X509_OBJECT {aka struct x509_object_st}’
switch (obj->type) {
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3065:18: error: ‘X509_LU_PKEY’ undeclared (first use in this function)
case X509_LU_PKEY:
^~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3065:18: note: each undeclared identifier is reported only once for each function it appears in
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘PySSL_RAND’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3275:9: warning: ‘RAND_pseudo_bytes’ is deprecated [-Wdeprecated-declarations]
ok = RAND_pseudo_bytes((unsigned char*)PyBytes_AS_STRING(bytes), len);
^~
In file included from /usr/include/openssl/ct.h:13:0,
from /usr/include/openssl/ssl.h:61,
from /home/jj/src/Python-3.4.3/Modules/_ssl.c:64:
/usr/include/openssl/rand.h:47:1: note: declared here
DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num))
^
At top level:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3808:13: warning: ‘_ssl_thread_locking_function’ defined but not used [-Wunused-function]
static void _ssl_thread_locking_function
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3795:1: warning: ‘_ssl_threadid_callback’ defined but not used [-Wunused-function]
_ssl_threadid_callback(CRYPTO_THREADID *id)
^~~~~~~~~~~~~~~~~~~~~~
building '_hashlib' extension
gcc -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/home/jj/src/Python-3.4.3/Include -I/home/jj/src/Python-3.4.3 -c /home/jj/src/Python-3.4.3/Modules/_hashopenssl.c -o build/temp.linux-x86_64-3.4/home/jj/src/Python-3.4.3/Modules/_hashopenssl.o
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:42:26: error: field ‘ctx’ has incomplete type
EVP_MD_CTX ctx; /* OpenSSL message digest context */
^~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c: In function ‘EVP_dealloc’:
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:109:5: warning: implicit declaration of function ‘EVP_MD_CTX_cleanup’ [-Wimplicit-function-declaration]
EVP_MD_CTX_cleanup(&self->ctx);
^~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c: In function ‘EVP_digest’:
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:145:16: error: storage size of ‘temp_ctx’ isn’t known
EVP_MD_CTX temp_ctx;
^~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:145:16: warning: unused variable ‘temp_ctx’ [-Wunused-variable]
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c: In function ‘EVP_hexdigest’:
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:165:16: error: storage size of ‘temp_ctx’ isn’t known
EVP_MD_CTX temp_ctx;
^~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:165:16: warning: unused variable ‘temp_ctx’ [-Wunused-variable]
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c: In function ‘PKCS5_PBKDF2_HMAC_fast’:
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:497:14: error: storage size of ‘hctx_tpl’ isn’t known
HMAC_CTX hctx_tpl, hctx;
^~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:497:24: error: storage size of ‘hctx’ isn’t known
HMAC_CTX hctx_tpl, hctx;
^~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:503:5: warning: implicit declaration of function ‘HMAC_CTX_init’ [-Wimplicit-function-declaration]
HMAC_CTX_init(&hctx_tpl);
^~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:508:9: warning: implicit declaration of function ‘HMAC_CTX_cleanup’ [-Wimplicit-function-declaration]
HMAC_CTX_cleanup(&hctx_tpl);
^~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:497:24: warning: unused variable ‘hctx’ [-Wunused-variable]
HMAC_CTX hctx_tpl, hctx;
^~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:497:14: warning: unused variable ‘hctx_tpl’ [-Wunused-variable]
HMAC_CTX hctx_tpl, hctx;
^~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c: At top level:
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_md5_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:57:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(md5)
^~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_sha1_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:58:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(sha1)
^~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_sha224_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:60:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(sha224)
^~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_sha256_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:61:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(sha256)
^~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_sha384_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:62:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(sha384)
^~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_sha512_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:63:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(sha512)
^~~~~~~~~~~~~~~~~~~~~
如您所见,configure
正确选择了我的OpenSSL安装位置(/usr/include/openssl
),因此此问题与How do I compile Python 3.4 with custom OpenSSL?不重复。
要解决此错误,我尝试将OpenSSL从源代码安装到/usr/local
,然后重新运行Python configure
和make
:
$ make
running build
running build_ext
INFO: Can't locate Tcl/Tk libs and/or headers
building '_ssl' extension
gcc -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/home/jj/src/Python-3.4.3/Include -I/home/jj/src/Python-3.4.3 -c /home/jj/src/Python-3.4.3/Modules/_ssl.c -o build/temp.linux-x86_64-3.4/home/jj/src/Python-3.4.3/Modules/_ssl.o
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘_create_tuple_for_X509_NAME’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:694:35: error: dereferencing pointer to incomplete type ‘X509_NAME_ENTRY {aka struct X509_name_entry_st}’
if (rdn_level != entry->set) {
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘_get_peer_alt_names’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:814:16: error: dereferencing pointer to incomplete type ‘X509_EXTENSION {aka struct X509_extension_st}’
p = ext->value->data;
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c:886:17: warning: ‘ASN1_STRING_data’ is deprecated [-Wdeprecated-declarations]
v = PyUnicode_FromStringAndSize((char *)ASN1_STRING_data(as),
^
In file included from /usr/local/include/openssl/bn.h:31:0,
from /usr/local/include/openssl/asn1.h:24,
from /usr/local/include/openssl/rsa.h:16,
from /home/jj/src/Python-3.4.3/Modules/_ssl.c:59:
/usr/local/include/openssl/asn1.h:553:1: note: declared here
DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
^
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘_get_crl_dp’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:1039:22: error: dereferencing pointer to incomplete type ‘X509 {aka struct x509_st}’
dps = certificate->crldp;
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘PySSL_compression’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:1431:43: error: dereferencing pointer to incomplete type ‘COMP_METHOD {aka const struct comp_method_st}’
if (comp_method == NULL || comp_method->type == NID_undef)
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘context_new’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2012:9: warning: ‘TLSv1_method’ is deprecated [-Wdeprecated-declarations]
ctx = SSL_CTX_new(TLSv1_method());
^~~
In file included from /usr/local/include/openssl/ct.h:13:0,
from /usr/local/include/openssl/ssl.h:61,
from /home/jj/src/Python-3.4.3/Modules/_ssl.c:64:
/usr/local/include/openssl/ssl.h:1617:1: note: declared here
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_method(void)) /* TLSv1.0 */
^
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2015:9: warning: ‘TLSv1_1_method’ is deprecated [-Wdeprecated-declarations]
ctx = SSL_CTX_new(TLSv1_1_method());
^~~
In file included from /usr/local/include/openssl/ct.h:13:0,
from /usr/local/include/openssl/ssl.h:61,
from /home/jj/src/Python-3.4.3/Modules/_ssl.c:64:
/usr/local/include/openssl/ssl.h:1623:1: note: declared here
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */
^
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2017:9: warning: ‘TLSv1_2_method’ is deprecated [-Wdeprecated-declarations]
ctx = SSL_CTX_new(TLSv1_2_method());
^~~
In file included from /usr/local/include/openssl/ct.h:13:0,
from /usr/local/include/openssl/ssl.h:61,
from /home/jj/src/Python-3.4.3/Modules/_ssl.c:64:
/usr/local/include/openssl/ssl.h:1629:1: note: declared here
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */
^
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2025:27: warning: implicit declaration of function ‘SSLv2_method’ [-Wimplicit-function-declaration]
ctx = SSL_CTX_new(SSLv2_method());
^~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2025:27: warning: passing argument 1 of ‘SSL_CTX_new’ makes pointer from integer without a cast [-Wint-conversion]
In file included from /home/jj/src/Python-3.4.3/Modules/_ssl.c:64:0:
/usr/local/include/openssl/ssl.h:1319:17: note: expected ‘const SSL_METHOD * {aka const struct ssl_method_st *}’ but argument is of type ‘int’
__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
^~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘get_verify_flags’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2275:46: error: dereferencing pointer to incomplete type ‘X509_STORE {aka struct x509_store_st}’
flags = X509_VERIFY_PARAM_get_flags(store->param);
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘load_cert_chain’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:2468:48: error: dereferencing pointer to incomplete type ‘SSL_CTX {aka struct ssl_ctx_st}’
pem_password_cb *orig_passwd_cb = self->ctx->default_passwd_callback;
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘cert_store_stats’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3055:20: error: dereferencing pointer to incomplete type ‘X509_OBJECT {aka struct x509_object_st}’
switch (obj->type) {
^~
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3065:18: error: ‘X509_LU_PKEY’ undeclared (first use in this function)
case X509_LU_PKEY:
^~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3065:18: note: each undeclared identifier is reported only once for each function it appears in
/home/jj/src/Python-3.4.3/Modules/_ssl.c: In function ‘PySSL_RAND’:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3275:9: warning: ‘RAND_pseudo_bytes’ is deprecated [-Wdeprecated-declarations]
ok = RAND_pseudo_bytes((unsigned char*)PyBytes_AS_STRING(bytes), len);
^~
In file included from /usr/local/include/openssl/ct.h:13:0,
from /usr/local/include/openssl/ssl.h:61,
from /home/jj/src/Python-3.4.3/Modules/_ssl.c:64:
/usr/local/include/openssl/rand.h:47:1: note: declared here
DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num))
^
At top level:
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3808:13: warning: ‘_ssl_thread_locking_function’ defined but not used [-Wunused-function]
static void _ssl_thread_locking_function
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_ssl.c:3795:1: warning: ‘_ssl_threadid_callback’ defined but not used [-Wunused-function]
_ssl_threadid_callback(CRYPTO_THREADID *id)
^~~~~~~~~~~~~~~~~~~~~~
building '_hashlib' extension
gcc -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/home/jj/src/Python-3.4.3/Include -I/home/jj/src/Python-3.4.3 -c /home/jj/src/Python-3.4.3/Modules/_hashopenssl.c -o build/temp.linux-x86_64-3.4/home/jj/src/Python-3.4.3/Modules/_hashopenssl.o
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:42:26: error: field ‘ctx’ has incomplete type
EVP_MD_CTX ctx; /* OpenSSL message digest context */
^~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c: In function ‘EVP_dealloc’:
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:109:5: warning: implicit declaration of function ‘EVP_MD_CTX_cleanup’ [-Wimplicit-function-declaration]
EVP_MD_CTX_cleanup(&self->ctx);
^~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c: In function ‘EVP_digest’:
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:145:16: error: storage size of ‘temp_ctx’ isn’t known
EVP_MD_CTX temp_ctx;
^~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:145:16: warning: unused variable ‘temp_ctx’ [-Wunused-variable]
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c: In function ‘EVP_hexdigest’:
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:165:16: error: storage size of ‘temp_ctx’ isn’t known
EVP_MD_CTX temp_ctx;
^~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:165:16: warning: unused variable ‘temp_ctx’ [-Wunused-variable]
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c: In function ‘PKCS5_PBKDF2_HMAC_fast’:
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:497:14: error: storage size of ‘hctx_tpl’ isn’t known
HMAC_CTX hctx_tpl, hctx;
^~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:497:24: error: storage size of ‘hctx’ isn’t known
HMAC_CTX hctx_tpl, hctx;
^~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:503:5: warning: implicit declaration of function ‘HMAC_CTX_init’ [-Wimplicit-function-declaration]
HMAC_CTX_init(&hctx_tpl);
^~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:508:9: warning: implicit declaration of function ‘HMAC_CTX_cleanup’ [-Wimplicit-function-declaration]
HMAC_CTX_cleanup(&hctx_tpl);
^~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:497:24: warning: unused variable ‘hctx’ [-Wunused-variable]
HMAC_CTX hctx_tpl, hctx;
^~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:497:14: warning: unused variable ‘hctx_tpl’ [-Wunused-variable]
HMAC_CTX hctx_tpl, hctx;
^~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c: At top level:
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_md5_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:57:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(md5)
^~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_sha1_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:58:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(sha1)
^~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_sha224_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:60:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(sha224)
^~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_sha256_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:61:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(sha256)
^~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_sha384_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:62:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(sha384)
^~~~~~~~~~~~~~~~~~~~~
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:54:23: error: storage size of ‘CONST_new_sha512_ctx’ isn’t known
static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
^
/home/jj/src/Python-3.4.3/Modules/_hashopenssl.c:63:1: note: in expansion of macro ‘DEFINE_CONSTS_FOR_NEW’
DEFINE_CONSTS_FOR_NEW(sha512)
^~~~~~~~~~~~~~~~~~~~~
虽然您可以看到configure
已使用/usr/local
中的OpenSSL安装,但仍会出现相同的错误。为什么我会收到这些错误以及如何解决?
答案 0 :(得分:2)
我必须在fedora 26中安装compat-openssl10-devel
才能使其正常工作。完整命令是sudo dnf install compat-openssl10-devel --allowerasing
。似乎openssl库API中存在向后不兼容的更新导致这种情况。请参阅:https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes#Compatibility_Layer
答案 1 :(得分:0)
如果您是从源代码构建的,那么您应该尝试更新的3.4版本。目前最新的是3.4.5。
此外,在你的标题中你提到3.4.2,但似乎是使用3.4.3 tarball。