Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QCA building errors for OpenSSL



  • When I run nmake to build QCA I get a long list of errors like uses of undefined types for example.

    This is the complete log from when I run nmake:

    Microsoft (R) Program Maintenance Utility Version 14.00.24210.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    [ 31%] Built target qca-qt5
    [ 44%] Built target qca-gnupg
    [ 45%] Built target qca-logger
    [ 46%] Building CXX object plugins/qca-ossl/CMakeFiles/qca-ossl.dir/qca-ossl.cpp.obj
    qca-ossl.cpp
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(130): error C2027: use of undefined type 'DSA_SIG_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/dsa.h(70): note: see declaration of 'DSA_SIG_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(130): error C2227: left of '->r' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(131): error C2027: use of undefined type 'DSA_SIG_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/dsa.h(70): note: see declaration of 'DSA_SIG_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(131): error C2227: left of '->s' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(150): error C2027: use of undefined type 'DSA_SIG_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/dsa.h(70): note: see declaration of 'DSA_SIG_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(150): error C2227: left of '->r' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(151): error C2027: use of undefined type 'DSA_SIG_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/dsa.h(70): note: see declaration of 'DSA_SIG_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(151): error C2227: left of '->s' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(402): error C3861: 'M_ASN1_IA5STRING_new': identifier not found
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(414): error C3861: 'M_ASN1_IA5STRING_new': identifier not found
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(426): error C3861: 'M_ASN1_IA5STRING_new': identifier not found
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1040): error C2079: 'opensslQCAPlugin::opensslHashContext::m_context' uses undefined struct 'evp_md_ctx_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1007): error C2664: 'int EVP_DigestInit(EVP_MD_CTX *,const EVP_MD *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1007): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1012): error C3861: 'EVP_MD_CTX_cleanup': identifier not found
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1017): error C3861: 'EVP_MD_CTX_cleanup': identifier not found
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1018): error C2664: 'int EVP_DigestInit(EVP_MD_CTX *,const EVP_MD *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1018): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1023): error C2664: 'int EVP_DigestUpdate(EVP_MD_CTX *,const void *,std::size_t)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1023): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1029): error C2664: 'int EVP_DigestFinal(EVP_MD_CTX *,unsigned char *,unsigned int *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1029): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1166): error C2079: 'opensslQCAPlugin::opensslPbkdf1Context::m_context' uses undefined struct 'evp_md_ctx_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1050): error C2664: 'int EVP_DigestInit(EVP_MD_CTX *,const EVP_MD *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1050): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1084): error C2664: 'int EVP_DigestUpdate(EVP_MD_CTX *,const void *,std::size_t)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1084): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1085): error C2664: 'int EVP_DigestUpdate(EVP_MD_CTX *,const void *,std::size_t)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1085): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1087): error C2664: 'int EVP_DigestFinal(EVP_MD_CTX *,unsigned char *,unsigned int *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1087): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1091): error C2664: 'int EVP_DigestInit(EVP_MD_CTX *,const EVP_MD *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1091): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1092): error C2664: 'int EVP_DigestUpdate(EVP_MD_CTX *,const void *,std::size_t)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1092): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1093): error C2664: 'int EVP_DigestFinal(EVP_MD_CTX *,unsigned char *,unsigned int *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1093): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1139): error C2664: 'int EVP_DigestUpdate(EVP_MD_CTX *,const void *,std::size_t)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1139): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1140): error C2664: 'int EVP_DigestUpdate(EVP_MD_CTX *,const void *,std::size_t)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1140): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1142): error C2664: 'int EVP_DigestFinal(EVP_MD_CTX *,unsigned char *,unsigned int *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1142): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1149): error C2664: 'int EVP_DigestInit(EVP_MD_CTX *,const EVP_MD *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1149): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1150): error C2664: 'int EVP_DigestUpdate(EVP_MD_CTX *,const void *,std::size_t)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1150): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1151): error C2664: 'int EVP_DigestFinal(EVP_MD_CTX *,unsigned char *,unsigned int *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1151): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1266): error C2079: 'opensslQCAPlugin::opensslHMACContext::m_context' uses undefined struct 'hmac_ctx_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1234): error C3861: 'HMAC_CTX_init': identifier not found
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1239): error C2664: 'int HMAC_Init_ex(HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *)': cannot convert argument 1 from 'int *' to 'HMAC_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1239): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1249): error C2664: 'int HMAC_Update(HMAC_CTX *,const unsigned char *,std::size_t)': cannot convert argument 1 from 'int *' to 'HMAC_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1249): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1255): error C2664: 'int HMAC_Final(HMAC_CTX *,unsigned char *,unsigned int *)': cannot convert argument 1 from 'int *' to 'HMAC_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1255): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1256): error C3861: 'HMAC_CTX_cleanup': identifier not found
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1280): error C2079: 'opensslQCAPlugin::EVPKey::mdctx' uses undefined struct 'evp_md_ctx_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1295): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1295): error C2227: left of '->references' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1295): error C2065: 'CRYPTO_LOCK_EVP_PKEY': undeclared identifier
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1295): error C3861: 'CRYPTO_add': identifier not found
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1325): error C2664: 'int EVP_MD_CTX_reset(EVP_MD_CTX *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1325): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1326): error C2664: 'int EVP_DigestInit_ex(EVP_MD_CTX *,const EVP_MD *,ENGINE *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1326): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1342): error C2664: 'int EVP_MD_CTX_reset(EVP_MD_CTX *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1342): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1343): error C2664: 'int EVP_DigestInit_ex(EVP_MD_CTX *,const EVP_MD *,ENGINE *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1343): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1355): error C2664: 'int EVP_DigestUpdate(EVP_MD_CTX *,const void *,std::size_t)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1355): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1363): error C2664: 'int EVP_DigestUpdate(EVP_MD_CTX *,const void *,std::size_t)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1363): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1376): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1376): error C2227: left of '->type' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1379): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1379): error C2227: left of '->pkey' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1379): error C2228: left of '.rsa' must have class/struct/union
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1380): error C2660: 'RSA_private_encrypt': function does not take 4 arguments
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1386): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1386): error C2227: left of '->type' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1398): error C2664: 'int EVP_SignFinal(EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1398): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1421): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1421): error C2227: left of '->type' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1423): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1423): error C2227: left of '->pkey' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1423): error C2228: left of '.rsa' must have class/struct/union
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1424): error C2660: 'RSA_public_decrypt': function does not take 4 arguments
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1430): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1430): error C2227: left of '->type' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1450): error C2664: 'int EVP_VerifyFinal(EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *)': cannot convert argument 1 from 'int *' to 'EVP_MD_CTX *'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1450): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1564): error C2027: use of undefined type 'dsa_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/evp.h(920): note: see declaration of 'dsa_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1564): error C2227: left of '->p' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1565): error C2027: use of undefined type 'dsa_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/evp.h(920): note: see declaration of 'dsa_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1565): error C2227: left of '->q' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1566): error C2027: use of undefined type 'dsa_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/evp.h(920): note: see declaration of 'dsa_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1566): error C2227: left of '->g' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1829): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1829): error C2227: left of '->pkey' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1829): error C2228: left of '.rsa' must have class/struct/union
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1832): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1832): error C2227: left of '->pkey' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1832): error C2228: left of '.rsa' must have class/struct/union
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1855): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1855): error C2227: left of '->pkey' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1855): error C2228: left of '.rsa' must have class/struct/union
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1870): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1870): error C2227: left of '->pkey' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1870): error C2228: left of '.rsa' must have class/struct/union
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1903): error C2027: use of undefined type 'evp_pkey_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/ssl.h(1700): note: see declaration of 'evp_pkey_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1903): error C2227: left of '->pkey' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(1903): error C2228: left of '.rsa' must have class/struct/union
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2024): error C2027: use of undefined type 'rsa_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/evp.h(914): note: see declaration of 'rsa_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2024): error C2227: left of '->n' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2025): error C2027: use of undefined type 'rsa_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/evp.h(914): note: see declaration of 'rsa_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2025): error C2227: left of '->e' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2026): error C2027: use of undefined type 'rsa_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/evp.h(914): note: see declaration of 'rsa_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2026): error C2227: left of '->p' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2027): error C2027: use of undefined type 'rsa_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/evp.h(914): note: see declaration of 'rsa_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2027): error C2227: left of '->q' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2028): error C2027: use of undefined type 'rsa_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/evp.h(914): note: see declaration of 'rsa_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2028): error C2227: left of '->d' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2030): error C2027: use of undefined type 'rsa_st'
    D:\Programs\Qt\5.9.2\msvc2015\include\openssl/evp.h(914): note: see declaration of 'rsa_st'
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2030): error C2227: left of '->n' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2030): error C2227: left of '->e' must point to class/struct/union/generic type
    D:\__DEV__\C++ Libs & DLLs\qca-2.1.3\plugins\qca-ossl\qca-ossl.cpp(2030): fatal error C1003: error count exceeds 100; stopping compilation
    NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~1.0\VC\bin\cl.exe' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' : return code '0x2'
    

    Looking at it, it looks like there is something wrong with OpenSSL. I have reinstalled it just to make sure that wasn't the problem (I got it from here (Win64 OpenSSL v1.1.0g): https://slproweb.com/products/Win32OpenSSL.html) and I am able to run the OpenSSL command in CMD.

    I copied the openssl folder found in includes of my OpenSSL-Win64 directory and copied it into the includes folder for Qt (the path is D:\Programs\Qt\5.9.2\msvc2015\include\openssl as seen in the errors).

    Is there just something wrong with the files from OpenSSL?


  • Lifetime Qt Champion

    Hi,

    I haven't checked the latest version of QCA but since OpenSSL broke API and ABI with the 1.1 series, I'd recommend trying again with the latest 1.0 release of OpenSSL.



  • I tried the Win64 OpenSSL v1.0.2n one, that got rid of those errors, but didn't fix the problem. Instead I get these:

    Microsoft (R) Program Maintenance Utility Version 14.00.24210.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    [ 31%] Built target qca-qt5
    [ 44%] Built target qca-gnupg
    [ 45%] Built target qca-logger
    NMAKE : fatal error U1073: don't know how to make 'C:\OpenSSL-Win32\lib\VC\libssl32MDd.lib'
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' : return code '0x2'
    Stop.
    

    I thought it might be due to needing a Win32 version on the C drive like in the error, but even after installing Win32 OpenSSL v1.0.2n there I still get the same error.

    Something else I tried was generating the Make files using cmake again since I'm using another version of OpenSSL then when I first did it. This however didn't help either.


  • Lifetime Qt Champion

    How did you pass the parameters for OpenSSL to cmake ?



  • @SGaist

    I didn't. Is that the problem? It doesn't know where OpenSSL is even when it's on the C drive like in the error (I'm guessing this is the default location)?


  • Lifetime Qt Champion

    I'd check the cmake configuration output to see if everything has been detected properly.



  • Well, there is the very nice and long warnings intended for project developers (unsure if that concerns me)

    No actual errors, so I don't know if the warnings is giving a hint for anything related to my problem. They are all about Policy CMP0026 is not set: Disallow use of the LOCATION target property. except two where it says it won't be compiled with SHA-0 and MD2 which I could care less about.

    Warnings:

    CMake Deprecation Warning at CMakeLists.txt:24 (cmake_policy):
      The OLD behavior for policy CMP0020 will be removed from a future version
      of CMake.
    
      The cmake-policies(7) manual explains that the OLD behaviors of all
      policies are deprecated and that a policy should be set to OLD only under
      specific short-term circumstances.  Projects should be ported to the NEW
      behavior and not rely on setting a policy to OLD.
    
    
    -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
    -- Building with Qt5 support
    -- Installed package is NOT relocatable
    -- Checking for certstore..
    -- Using built in certstore.
    -- certstore path: D:/__DEV__/C++ Libs & DLLs/qca-2.1.3/certs/rootcerts.pem
    -- mlock(2) does not take a void *
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:105 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qca-qt5".  Use the
      target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      src/CMakeLists.txt:181 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:109 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qca-qt5".  Use the
      target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      src/CMakeLists.txt:181 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:105 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qca-gnupg".  Use the
      target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      plugins/qca-gnupg/CMakeLists.txt:55 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:109 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qca-gnupg".  Use the
      target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      plugins/qca-gnupg/CMakeLists.txt:55 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:105 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qca-logger".  Use the
      target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      plugins/qca-logger/CMakeLists.txt:24 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:109 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qca-logger".  Use the
      target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      plugins/qca-logger/CMakeLists.txt:24 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning at plugins/qca-ossl/CMakeLists.txt:18 (message):
      qca-ossl will be compiled without MD2 digest algorithm support
    
    
    CMake Warning at plugins/qca-ossl/CMakeLists.txt:32 (message):
      qca-ossl will be compiled without SHA-0 digest algorithm support
    
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:105 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qca-ossl".  Use the
      target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      plugins/qca-ossl/CMakeLists.txt:67 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:109 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qca-ossl".  Use the
      target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      plugins/qca-ossl/CMakeLists.txt:67 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:105 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qca-softstore".  Use
      the target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      plugins/qca-softstore/CMakeLists.txt:24 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:109 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qca-softstore".  Use
      the target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      plugins/qca-softstore/CMakeLists.txt:24 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    
    Plugins:
      qca-botan off
      qca-cyrus-sasl off
      qca-gcrypt off
      qca-gnupg on
      qca-logger on
      qca-nss off
      qca-ossl on
      qca-pkcs11 off
      qca-softstore on
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:105 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "mozcerts-qt5".  Use
      the target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      tools/mozcerts/CMakeLists.txt:11 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:109 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "mozcerts-qt5".  Use
      the target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      tools/mozcerts/CMakeLists.txt:11 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:105 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qcatool-qt5".  Use
      the target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      tools/qcatool/CMakeLists.txt:15 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) at cmake/modules/QcaMacro.cmake:109 (get_target_property):
      Policy CMP0026 is not set: Disallow use of the LOCATION target property.
      Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      The LOCATION property should not be read from target "qcatool-qt5".  Use
      the target name directly with add_custom_command, or use the generator
      expression $<TARGET_FILE>, as appropriate.
    
    Call Stack (most recent call first):
      tools/qcatool/CMakeLists.txt:15 (install_pdb)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    
    QCA prefix is D:/Programs/Qt/5.9.2/msvc2015
    Plugins will be installed to D:/Programs/Qt/5.9.2/msvc2015/plugins
    Binary will be installed to D:/Programs/Qt/5.9.2/msvc2015/bin
    Library will be installed to D:/Programs/Qt/5.9.2/msvc2015/lib
    Public headers will be installed to D:/Programs/Qt/5.9.2/msvc2015/include/Qca-qt5
    Private headers will be installed to D:/Programs/Qt/5.9.2/msvc2015/include/Qca-qt5
    Feature file will be installed to D:/Programs/Qt/5.9.2/msvc2015/mkspecs/features
    Documentation will be installed to D:/Programs/Qt/Docs/Qt-5.9.2/html/qca
    Man page will be installed to D:/Programs/Qt/5.9.2/msvc2015/man
    Pkg-config file will be installed to D:/Programs/Qt/5.9.2/msvc2015/lib/pkgconfig
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: D:/__DEV__/C++ Libs & DLLs/qca-2.1.3
    

  • Lifetime Qt Champion

    They mean that the project is using old technics that are now considered as deprecated.
    This should not change anything for you.


Log in to reply