- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
尝试使用 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 安装,但还是会出现同样的错误。为什么会出现这些错误,我该如何解决?
最佳答案
我必须在 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
关于Python 3.4.3 无法构建这些模块 : _hashlib _ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41443988/
我正在处理一组标记为 160 个组的 173k 点。我想通过合并最接近的(到 9 或 10 个组)来减少组/集群的数量。我搜索过 sklearn 或类似的库,但没有成功。 我猜它只是通过 knn 聚类
我有一个扁平数字列表,这些数字逻辑上以 3 为一组,其中每个三元组是 (number, __ignored, flag[0 or 1]),例如: [7,56,1, 8,0,0, 2,0,0, 6,1,
我正在使用 pipenv 来管理我的包。我想编写一个 python 脚本来调用另一个使用不同虚拟环境(VE)的 python 脚本。 如何运行使用 VE1 的 python 脚本 1 并调用另一个 p
假设我有一个文件 script.py 位于 path = "foo/bar/script.py"。我正在寻找一种在 Python 中通过函数 execute_script() 从我的主要 Python
这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。 问题到底是什么? 我想运行 2 个脚本。在第一个脚本中,我调用另一个脚本,但我希望它们继续并行,而不是在两个单独的线程中。主要是我不希望第
我有一个带有 python 2.5.5 的软件。我想发送一个命令,该命令将在 python 2.7.5 中启动一个脚本,然后继续执行该脚本。 我试过用 #!python2.7.5 和http://re
我在 python 命令行(使用 python 2.7)中,并尝试运行 Python 脚本。我的操作系统是 Windows 7。我已将我的目录设置为包含我所有脚本的文件夹,使用: os.chdir("
剧透:部分解决(见最后)。 以下是使用 Python 嵌入的代码示例: #include int main(int argc, char** argv) { Py_SetPythonHome
假设我有以下列表,对应于及时的股票价格: prices = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] 我想确定以下总体上最
所以我试图在选择某个单选按钮时更改此框架的背景。 我的框架位于一个类中,并且单选按钮的功能位于该类之外。 (这样我就可以在所有其他框架上调用它们。) 问题是每当我选择单选按钮时都会出现以下错误: co
我正在尝试将字符串与 python 中的正则表达式进行比较,如下所示, #!/usr/bin/env python3 import re str1 = "Expecting property name
考虑以下原型(prototype) Boost.Python 模块,该模块从单独的 C++ 头文件中引入类“D”。 /* file: a/b.cpp */ BOOST_PYTHON_MODULE(c)
如何编写一个程序来“识别函数调用的行号?” python 检查模块提供了定位行号的选项,但是, def di(): return inspect.currentframe().f_back.f_l
我已经使用 macports 安装了 Python 2.7,并且由于我的 $PATH 变量,这就是我输入 $ python 时得到的变量。然而,virtualenv 默认使用 Python 2.6,除
我只想问如何加快 python 上的 re.search 速度。 我有一个很长的字符串行,长度为 176861(即带有一些符号的字母数字字符),我使用此函数测试了该行以进行研究: def getExe
list1= [u'%app%%General%%Council%', u'%people%', u'%people%%Regional%%Council%%Mandate%', u'%ppp%%Ge
这个问题在这里已经有了答案: Is it Pythonic to use list comprehensions for just side effects? (7 个答案) 关闭 4 个月前。 告
我想用 Python 将两个列表组合成一个列表,方法如下: a = [1,1,1,2,2,2,3,3,3,3] b= ["Sun", "is", "bright", "June","and" ,"Ju
我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明 here构建包含在我的发行版中的教程 Boost-Pyth
学习 Python,我正在尝试制作一个没有任何第 3 方库的网络抓取工具,这样过程对我来说并没有简化,而且我知道我在做什么。我浏览了一些在线资源,但所有这些都让我对某些事情感到困惑。 html 看起来
我是一名优秀的程序员,十分优秀!