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
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.