Compiling Qt 5.5 for Windows Phone 8.1 with OpenSSL Support



  • I'm trying to build Qt 5.5 for Windows Phone 8.1.
    Currently I work on an App for my master thesis using the Qt5 Framework. The App runs fine on iOS and Android. Now I want to support Windows Phone too.

    In the App I'm using the OpenSSL API to create a certificate signing request and the corresponding keypair. I also use a QSslSocket. So I need to compile Qt with OpenSSL support.

    In my Environment I use:

    • Windows 10 Pro
    • Visual Studio 2015 Community Edition
    • Strawberry Perl (needed to compile OpenSSL)
    • Qt Community Edition (online installer)

    For Windows Phone I compiled OpenSSL from Microsoft (https://github.com/Microsoft/openssl commit 632474b204aa5fd305e30ca851f1a8c09563dbc3)

    To compile OpenSSL I used the Command Shell and executed the following commands (from https://github.com/Microsoft/openssl/blob/WinRT/INSTALL.WINAPP):

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat
    cd C:\openssl
    perl Configure no-asm no-hw no-dso VC-WINSTORE
    ms\do_winstore
    ms\setVSvars ws8.1arm
    
    set LIBPATH=C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0\References\CommonConfiguration\neutral;%LIBPATH%
    
    nmake -f ms\nt.mak init
    nmake -f ms\nt.mak
    

    The Compilation seems to be fine.

    Then I copied the resulting files from C:\openssl\out32 to C:\lib\openssl
    I copied the files from C:\openssl\include to C:\include

    For compiling the Qt Framework I use the "VS2015 x86 Native Tools Command Prompt" as mentioned in http://wiki.qt.io/WinRTBuild

    Then in C:\Qt\5.5\Src I execute the two following commands:

    configure -nomake examples -nomake tests -openssl -I C:\include -L C:\lib\openssl -opensource -prefix C:\Qt\5.5.1 -confirm-license -xplatform winphone-arm-msvc2013 -release
    
    nmake
    

    It compiles and after a while it exits with the following errors:

    ...
    Generating Code...
            cl -c -FIqt_pch.h -Yuqt_pch.h -Fp.pch\release\Qt5Network_pch.pch -nologo -FS -O2 -MD -D_HAS_EXCEPTIONS=0 -GR -W3 -w34100 -w34189 -w44996 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQ_BYTE_ORDER=Q_LITTLE_ENDIAN -DQT_NO_PRINTER -DQT_NO_PRINTDIALOG -DWINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP -DARM -D__ARM__ -D__ARM__ -DQT_NO_USING_NAMESPACE -DQT_BUILD_NETWORK_LIB -DQT_BUILDING_QT -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x040800 -DQT_LOCALSOCKET_TCP -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_CORE_LIB -DNDEBUG -I. -IC:\include -I..\..\include -I..\..\include\QtNetwork -I..\..\include\QtNetwork\5.5.1 -I..\..\include\QtNetwork\5.5.1\QtNetwork -Itmp -I..\3rdparty\zlib -Ikernel -I..\..\include\QtCore\5.5.1 -I..\..\include\QtCore\5.5.1\QtCore -I..\..\include\QtCore -I.moc\release -I..\..\mkspecs\winphone-arm-msvc2013 -Fo.obj\release\ @C:\Users\gordon\AppData\Local\Temp\nm609E.tmp
    qasn1element.cpp
    qssl.cpp
    qsslcertificate.cpp
    c:\qt\5.5\src\qtbase\src\network\ssl\qsslsocket_winrt_p.h(68) : error C2011: 'QSslSocketBackendPrivate' : 'class' type redefinition
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslsocket_openssl_p.h(100) : see declaration of 'QSslSocketBackendPrivate'
    ssl\qsslcertificate.cpp(572) : error C2027: use of undefined type 'QSslSocketBackendPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslsocket_openssl_p.h(100) : see declaration of 'QSslSocketBackendPrivate'
    ssl\qsslcertificate.cpp(592) : error C2027: use of undefined type 'QSslSocketBackendPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslsocket_openssl_p.h(100) : see declaration of 'QSslSocketBackendPrivate'
    qsslconfiguration.cpp
    qsslcipher.cpp
    qsslellipticcurve.cpp
    qsslkey_p.cpp
    qsslerror.cpp
    qsslsocket.cpp
    c:\qt\5.5\src\qtbase\src\network\ssl\qsslsocket_winrt_p.h(68) : error C2011: 'QSslSocketBackendPrivate' : 'class' type redefinition
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslsocket_openssl_p.h(100) : see declaration of 'QSslSocketBackendPrivate'
    ssl\qsslsocket.cpp(347) : error C2027: use of undefined type 'QSslSocketBackendPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslsocket_openssl_p.h(100) : see declaration of 'QSslSocketBackendPrivate'
    ssl\qsslsocket.cpp(347) : fatal error C1903: unable to recover from previous error(s); stopping compilation
    qsslpresharedkeyauthenticator.cpp
    qsslcertificateextension.cpp
    qsslcertificate_qt.cpp
    c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(86) : error C3861: 'q_X509_free': identifier not found
    ssl\qsslcertificate_qt.cpp(54) : error C2039: 'derData' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(76) : error C2039: 'subjectMatchesIssuer' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(121) : error C2039: 'subjectAlternativeNames' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(146) : error C2039: 'publicKeyAlgorithm' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(147) : error C2039: 'publicKeyAlgorithm' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(148) : error C2039: 'publicKeyDerData' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(155) : error C2039: 'extensions' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(182) : error C2039: 'derData' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(257) : error C2039: 'parse' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(261) : error C2039: 'derData' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(261) : error C2228: left of '.size' must have class/struct/union
    ssl\qsslcertificate_qt.cpp(261) : error C2660: 'QByteArray::remove' : function does not take 1 arguments
    ssl\qsslcertificate_qt.cpp(282) : error C2039: 'parse' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(306) : error C2065: 'versionString' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(310) : error C2065: 'versionString' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(316) : error C2065: 'serialNumberString' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(327) : error C2065: 'issuerInfo' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(337) : error C2065: 'notValidBefore' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(341) : error C2065: 'notValidAfter' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(348) : error C2065: 'subjectInfo' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(349) : error C2065: 'subjectMatchesIssuer' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(356) : error C2065: 'publicKeyDerData' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(356) : error C2228: left of '.resize' must have class/struct/union
            type is 'unknown-type'
    ssl\qsslcertificate_qt.cpp(368) : error C2065: 'publicKeyAlgorithm' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(370) : error C2065: 'publicKeyAlgorithm' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(372) : error C2065: 'publicKeyAlgorithm' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(374) : error C2065: 'publicKeyAlgorithm' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(377) : error C2065: 'publicKeyDerData' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(377) : error C2228: left of '.data' must have class/struct/union
            type is 'unknown-type'
    ssl\qsslcertificate_qt.cpp(377) : error C2228: left of '.size' must have class/struct/union
            type is 'unknown-type'
    ssl\qsslcertificate_qt.cpp(377) : error C2660: 'QDataStream::readRawData' : function does not take 1 arguments
    ssl\qsslcertificate_qt.cpp(386) : error C3861: 'parseExtension': identifier not found
    ssl\qsslcertificate_qt.cpp(388) : error C2065: 'extensions' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(398) : error C2065: 'subjectAlternativeNames' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(398) : error C2228: left of '.insert' must have class/struct/union
            type is 'unknown-type'
    ssl\qsslcertificate_qt.cpp(400) : error C2065: 'subjectAlternativeNames' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(400) : error C2228: left of '.insert' must have class/struct/union
            type is 'unknown-type'
    ssl\qsslcertificate_qt.cpp(410) : error C2065: 'derData' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(411) : error C2065: 'null' : undeclared identifier
    ssl\qsslcertificate_qt.cpp(415) : error C2039: 'parseExtension' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_qt.cpp(505) : error C2248: 'QSslCertificateExtension::d' : cannot access private member declared in class 'QSslCertificateExtension'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificateextension.h(69) : see declaration of 'QSslCertificateExtension::d'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificateextension.h(50) : see declaration of 'QSslCertificateExtension'
    ssl\qsslcertificate_qt.cpp(506) : error C2248: 'QSslCertificateExtension::d' : cannot access private member declared in class 'QSslCertificateExtension'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificateextension.h(69) : see declaration of 'QSslCertificateExtension::d'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificateextension.h(50) : see declaration of 'QSslCertificateExtension'
    ssl\qsslcertificate_qt.cpp(507) : error C2248: 'QSslCertificateExtension::d' : cannot access private member declared in class 'QSslCertificateExtension'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificateextension.h(69) : see declaration of 'QSslCertificateExtension::d'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificateextension.h(50) : see declaration of 'QSslCertificateExtension'
    ssl\qsslcertificate_qt.cpp(508) : error C2248: 'QSslCertificateExtension::d' : cannot access private member declared in class 'QSslCertificateExtension'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificateextension.h(69) : see declaration of 'QSslCertificateExtension::d'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificateextension.h(50) : see declaration of 'QSslCertificateExtension'
    ssl\qsslcertificate_qt.cpp(509) : error C2248: 'QSslCertificateExtension::d' : cannot access private member declared in class 'QSslCertificateExtension'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificateextension.h(69) : see declaration of 'QSslCertificateExtension::d'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificateextension.h(50) : see declaration of 'QSslCertificateExtension'
    qsslcertificate_winrt.cpp
    c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(86) : error C3861: 'q_X509_free': identifier not found
    ssl\qsslcertificate_winrt.cpp(98) : error C2039: 'derData' : is not a member of 'QSslCertificatePrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_winrt.cpp(98) : error C2228: left of '.length' must have class/struct/union
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(74) : see declaration of 'QSslCertificatePrivate'
    ssl\qsslcertificate_winrt.cpp(98) : error C2228: left of '.data' must have class/struct/union
    ssl\qsslcertificate_winrt.cpp(98) : error C2660: 'ABI::Windows::Security::Cryptography::ICryptographicBufferStatics::CreateFromByteArray' : function does not take 2 arguments
    qsslkey_qt.cpp
    ssl\qsslkey_qt.cpp(117) : error C2039: 'Cipher' : is not a member of 'QSslKeyPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslkey_p.h(61) : see declaration of 'QSslKeyPrivate'
    ssl\qsslkey_qt.cpp(117) : error C2065: 'Cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(117) : error C2146: syntax error : missing ')' before identifier 'cipher'
    ssl\qsslkey_qt.cpp(117) : error C2059: syntax error : ')'
    ssl\qsslkey_qt.cpp(118) : error C2143: syntax error : missing ';' before '{'
    ssl\qsslkey_qt.cpp(118) : error C2447: '{' : missing function header (old-style formal list?)
    ssl\qsslkey_qt.cpp(146) : error C2065: 'derData' : undeclared identifier
    ssl\qsslkey_qt.cpp(146) : error C2228: left of '.clear' must have class/struct/union
            type is 'unknown-type'
    ssl\qsslkey_qt.cpp(147) : error C2065: 'keyLength' : undeclared identifier
    ssl\qsslkey_qt.cpp(179) : error C2065: 'keyLength' : undeclared identifier
    ssl\qsslkey_qt.cpp(189) : error C2065: 'keyLength' : undeclared identifier
    ssl\qsslkey_qt.cpp(195) : error C2065: 'keyLength' : undeclared identifier
    ssl\qsslkey_qt.cpp(213) : error C2065: 'keyLength' : undeclared identifier
    ssl\qsslkey_qt.cpp(219) : error C2065: 'keyLength' : undeclared identifier
    ssl\qsslkey_qt.cpp(232) : error C2065: 'keyLength' : undeclared identifier
    ssl\qsslkey_qt.cpp(236) : error C2065: 'derData' : undeclared identifier
    ssl\qsslkey_qt.cpp(252) : error C2065: 'Cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(252) : error C2146: syntax error : missing ';' before identifier 'cipher'
    ssl\qsslkey_qt.cpp(252) : error C2065: 'cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(254) : error C2065: 'cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(254) : error C2065: 'DesCbc' : undeclared identifier
    ssl\qsslkey_qt.cpp(256) : error C2065: 'cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(256) : error C2065: 'DesEde3Cbc' : undeclared identifier
    ssl\qsslkey_qt.cpp(258) : error C2065: 'cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(258) : error C2065: 'Rc2Cbc' : undeclared identifier
    ssl\qsslkey_qt.cpp(265) : error C2065: 'cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(266) : error C2065: 'cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(266) : error C3861: 'decrypt': identifier not found
    ssl\qsslkey_qt.cpp(273) : error C2065: 'keyLength' : undeclared identifier
    ssl\qsslkey_qt.cpp(288) : error C2065: 'Cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(288) : error C2146: syntax error : missing ';' before identifier 'cipher'
    ssl\qsslkey_qt.cpp(288) : error C2065: 'cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(288) : error C2065: 'DesEde3Cbc' : undeclared identifier
    ssl\qsslkey_qt.cpp(289) : error C2065: 'cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(290) : error C2065: 'cipher' : undeclared identifier
    ssl\qsslkey_qt.cpp(290) : error C2065: 'derData' : undeclared identifier
    ssl\qsslkey_qt.cpp(290) : error C3861: 'encrypt': identifier not found
    ssl\qsslkey_qt.cpp(295) : error C2065: 'derData' : undeclared identifier
    qsslkey_winrt.cpp
    c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(86) : error C3861: 'q_X509_free': identifier not found
    ssl\qsslkey_winrt.cpp(87) : error C2039: 'Cipher' : is not a member of 'QSslKeyPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslkey_p.h(61) : see declaration of 'QSslKeyPrivate'
    ssl\qsslkey_winrt.cpp(87) : error C2065: 'Cipher' : undeclared identifier
    ssl\qsslkey_winrt.cpp(87) : error C2923: 'QHash' : 'Cipher' is not a valid template type argument for parameter 'Key'
    ssl\qsslkey_winrt.cpp(60) : error C2512: 'QHash' : no appropriate default constructor available
    ssl\qsslkey_winrt.cpp(72) : error C2039: 'DesCbc' : is not a member of 'QSslKeyPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslkey_p.h(61) : see declaration of 'QSslKeyPrivate'
    ssl\qsslkey_winrt.cpp(72) : error C2065: 'DesCbc' : undeclared identifier
    ssl\qsslkey_winrt.cpp(72) : error C2660: 'ABI::Windows::Security::Cryptography::Core::ISymmetricKeyAlgorithmProviderStatics::OpenAlgorithm' : function does not take 1 arguments
    ssl\qsslkey_winrt.cpp(75) : error C2039: 'DesEde3Cbc' : is not a member of 'QSslKeyPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslkey_p.h(61) : see declaration of 'QSslKeyPrivate'
    ssl\qsslkey_winrt.cpp(75) : error C2065: 'DesEde3Cbc' : undeclared identifier
    ssl\qsslkey_winrt.cpp(75) : error C2660: 'ABI::Windows::Security::Cryptography::Core::ISymmetricKeyAlgorithmProviderStatics::OpenAlgorithm' : function does not take 1 arguments
    ssl\qsslkey_winrt.cpp(78) : error C2039: 'Rc2Cbc' : is not a member of 'QSslKeyPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslkey_p.h(61) : see declaration of 'QSslKeyPrivate'
    ssl\qsslkey_winrt.cpp(78) : error C2065: 'Rc2Cbc' : undeclared identifier
    ssl\qsslkey_winrt.cpp(78) : error C2660: 'ABI::Windows::Security::Cryptography::Core::ISymmetricKeyAlgorithmProviderStatics::OpenAlgorithm' : function does not take 1 arguments
    ssl\qsslkey_winrt.cpp(92) : error C2039: 'Cipher' : is not a member of 'QSslKeyPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslkey_p.h(61) : see declaration of 'QSslKeyPrivate'
    ssl\qsslkey_winrt.cpp(92) : error C2065: 'Cipher' : undeclared identifier
    ssl\qsslkey_winrt.cpp(92) : error C2146: syntax error : missing ')' before identifier 'cipher'
    ssl\qsslkey_winrt.cpp(92) : error C2059: syntax error : ')'
    ssl\qsslkey_winrt.cpp(93) : error C2143: syntax error : missing ';' before '{'
    ssl\qsslkey_winrt.cpp(93) : error C2447: '{' : missing function header (old-style formal list?)
    ssl\qsslkey_winrt.cpp(146) : error C2039: 'decrypt' : is not a member of 'QSslKeyPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslkey_p.h(61) : see declaration of 'QSslKeyPrivate'
    ssl\qsslkey_winrt.cpp(146) : error C2065: 'Cipher' : undeclared identifier
    ssl\qsslkey_winrt.cpp(146) : error C2146: syntax error : missing ')' before identifier 'cipher'
    ssl\qsslkey_winrt.cpp(146) : error C2059: syntax error : ')'
    ssl\qsslkey_winrt.cpp(147) : error C2143: syntax error : missing ';' before '{'
    ssl\qsslkey_winrt.cpp(147) : error C2447: '{' : missing function header (old-style formal list?)
    ssl\qsslkey_winrt.cpp(151) : error C2039: 'encrypt' : is not a member of 'QSslKeyPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslkey_p.h(61) : see declaration of 'QSslKeyPrivate'
    ssl\qsslkey_winrt.cpp(151) : error C2065: 'Cipher' : undeclared identifier
    ssl\qsslkey_winrt.cpp(151) : error C2146: syntax error : missing ')' before identifier 'cipher'
    ssl\qsslkey_winrt.cpp(151) : error C2059: syntax error : ')'
    ssl\qsslkey_winrt.cpp(152) : error C2143: syntax error : missing ';' before '{'
    ssl\qsslkey_winrt.cpp(152) : error C2447: '{' : missing function header (old-style formal list?)
    qsslsocket_winrt.cpp
    c:\qt\5.5\src\qtbase\src\network\ssl\qsslcertificate_p.h(86) : error C3861: 'q_X509_free': identifier not found
    qsslellipticcurve_dummy.cpp
    qsslcertificate_openssl.cpp
    qsslcontext_openssl.cpp
    ssl\qsslcontext_openssl.cpp(471) : error C2027: use of undefined type 'ssl_session_st'
            C:\include\openssl/ssl.h(352) : see declaration of 'ssl_session_st'
    ssl\qsslcontext_openssl.cpp(471) : error C2227: left of '->tlsext_tick_lifetime_hint' must point to class/struct/union/generic type
    qsslellipticcurve_openssl.cpp
    Generating Code...
    Compiling...
    qsslkey_openssl.cpp
    qsslsocket_openssl.cpp
    ssl\qsslsocket_openssl.cpp(87) : error C2039: 'ptrCertOpenSystemStoreW' : is not a member of 'QSslSocketPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslsocket_p.h(97) : see declaration of 'QSslSocketPrivate'
    ssl\qsslsocket_openssl.cpp(87) : error C2146: syntax error : missing ';' before identifier 'ptrCertOpenSystemStoreW'
    ssl\qsslsocket_openssl.cpp(87) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    ssl\qsslsocket_openssl.cpp(88) : error C2039: 'ptrCertFindCertificateInStore' : is not a member of 'QSslSocketPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslsocket_p.h(97) : see declaration of 'QSslSocketPrivate'
    ssl\qsslsocket_openssl.cpp(88) : error C2146: syntax error : missing ';' before identifier 'ptrCertFindCertificateInStore'
    ssl\qsslsocket_openssl.cpp(88) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    ssl\qsslsocket_openssl.cpp(89) : error C2039: 'ptrCertCloseStore' : is not a member of 'QSslSocketPrivate'
            c:\qt\5.5\src\qtbase\src\network\ssl\qsslsocket_p.h(97) : see declaration of 'QSslSocketPrivate'
    ssl\qsslsocket_openssl.cpp(89) : error C2146: syntax error : missing ';' before identifier 'ptrCertCloseStore'
    ssl\qsslsocket_openssl.cpp(89) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    ssl\qsslsocket_openssl.cpp(549) : error C3861: 'LoadLibraryW': identifier not found
    ssl\qsslsocket_openssl.cpp(556) : error C2146: syntax error : missing ';' before identifier 'GetProcAddress'
    ssl\qsslsocket_openssl.cpp(557) : error C2146: syntax error : missing ';' before identifier 'GetProcAddress'
    ssl\qsslsocket_openssl.cpp(558) : error C2146: syntax error : missing ';' before identifier 'GetProcAddress'
    ssl\qsslsocket_openssl.cpp(749) : error C2065: 'HCERTSTORE' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(749) : error C2146: syntax error : missing ';' before identifier 'hSystemStore'
    ssl\qsslsocket_openssl.cpp(749) : error C2065: 'hSystemStore' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(757) : error C2065: 'hSystemStore' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(757) : error C2064: term does not evaluate to a function taking 2 arguments
    ssl\qsslsocket_openssl.cpp(759) : error C2065: 'hSystemStore' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(760) : error C2065: 'PCCERT_CONTEXT' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(760) : error C2146: syntax error : missing ';' before identifier 'pc'
    ssl\qsslsocket_openssl.cpp(760) : error C2065: 'pc' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(762) : error C2065: 'pc' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(762) : error C2065: 'hSystemStore' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(762) : error C2065: 'X509_ASN_ENCODING' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(762) : error C2065: 'CERT_FIND_ANY' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(763) : error C2065: 'pc' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(765) : error C2065: 'pc' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(765) : error C2227: left of '->pbCertEncoded' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(765) : error C2227: left of '->cbCertEncoded' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(769) : error C2065: 'hSystemStore' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1430) : error C2065: 'PCCERT_CONTEXT' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1430) : error C2146: syntax error : missing ';' before identifier 'wincert'
    ssl\qsslsocket_openssl.cpp(1430) : error C2065: 'wincert' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1430) : error C2065: 'X509_ASN_ENCODING' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1430) : error C3861: 'CertCreateCertificateContext': identifier not found
    ssl\qsslsocket_openssl.cpp(1431) : error C2065: 'wincert' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1440) : error C2065: 'CERT_CHAIN_PARA' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1440) : error C2146: syntax error : missing ';' before identifier 'parameters'
    ssl\qsslsocket_openssl.cpp(1440) : error C2065: 'parameters' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1441) : error C2065: 'parameters' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1441) : error C2070: 'unknown-type': illegal sizeof operand
    ssl\qsslsocket_openssl.cpp(1442) : error C2065: 'parameters' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1442) : error C2228: left of '.cbSize' must have class/struct/union
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1442) : error C2070: 'unknown-type': illegal sizeof operand
    ssl\qsslsocket_openssl.cpp(1444) : error C2065: 'parameters' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1444) : error C2228: left of '.RequestedUsage' must have class/struct/union
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1444) : error C2228: left of '.dwType' must have class/struct/union
    ssl\qsslsocket_openssl.cpp(1444) : error C2065: 'USAGE_MATCH_TYPE_AND' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1445) : error C2065: 'parameters' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1445) : error C2228: left of '.RequestedUsage' must have class/struct/union
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1445) : error C2228: left of '.Usage' must have class/struct/union
    ssl\qsslsocket_openssl.cpp(1445) : error C2228: left of '.cUsageIdentifier' must have class/struct/union
    ssl\qsslsocket_openssl.cpp(1446) : error C2065: 'szOID_PKIX_KP_SERVER_AUTH' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1446) : error C2065: 'szOID_PKIX_KP_CLIENT_AUTH' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1447) : error C2065: 'parameters' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1447) : error C2228: left of '.RequestedUsage' must have class/struct/union
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1447) : error C2228: left of '.Usage' must have class/struct/union
    ssl\qsslsocket_openssl.cpp(1447) : error C2228: left of '.rgpszUsageIdentifier' must have class/struct/union
    ssl\qsslsocket_openssl.cpp(1453) : error C2065: 'PCCERT_CHAIN_CONTEXT' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1453) : error C2146: syntax error : missing ';' before identifier 'chain'
    ssl\qsslsocket_openssl.cpp(1453) : error C2065: 'chain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1456) : error C2065: 'wincert' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1459) : error C2065: 'parameters' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1462) : error C2065: 'chain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1454) : error C3861: 'CertGetCertificateChain': identifier not found
    ssl\qsslsocket_openssl.cpp(1494) : error C2065: 'chain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1494) : error C2227: left of '->TrustStatus' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1494) : error C2228: left of '.dwErrorStatus' must have class/struct/union
    ssl\qsslsocket_openssl.cpp(1495) : error C2065: 'CERT_TRUST_NO_ERROR' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1495) : error C2065: 'chain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1495) : error C2227: left of '->cChain' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1496) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    ssl\qsslsocket_openssl.cpp(1496) : error C2146: syntax error : missing ';' before identifier 'finalChain'
    ssl\qsslsocket_openssl.cpp(1496) : error C2065: 'finalChain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1496) : error C2065: 'chain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1496) : error C2227: left of '->rgpChain' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1496) : error C2227: left of '->cChain' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1499) : error C2065: 'finalChain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1499) : error C2227: left of '->TrustStatus' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1499) : error C2228: left of '.dwErrorStatus' must have class/struct/union
    ssl\qsslsocket_openssl.cpp(1500) : error C2065: 'CERT_TRUST_NO_ERROR' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1500) : error C2065: 'finalChain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1500) : error C2227: left of '->cElement' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1501) : error C2065: 'finalChain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1501) : error C2227: left of '->rgpElement' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1501) : error C2227: left of '->cElement' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1501) : error C2227: left of '->pCertContext' must point to class/struct/union/generic type
    ssl\qsslsocket_openssl.cpp(1502) : error C2227: left of '->pbCertEncoded' must point to class/struct/union/generic type
    ssl\qsslsocket_openssl.cpp(1502) : error C2065: 'finalChain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1502) : error C2227: left of '->rgpElement' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1502) : error C2227: left of '->cElement' must point to class/struct/union/generic type
            type is 'unknown-type'
    ssl\qsslsocket_openssl.cpp(1502) : error C2227: left of '->pCertContext' must point to class/struct/union/generic type
    ssl\qsslsocket_openssl.cpp(1502) : error C2227: left of '->cbCertEncoded' must point to class/struct/union/generic type
    ssl\qsslsocket_openssl.cpp(1505) : error C2065: 'chain' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1505) : error C3861: 'CertFreeCertificateChain': identifier not found
    ssl\qsslsocket_openssl.cpp(1507) : error C2065: 'wincert' : undeclared identifier
    ssl\qsslsocket_openssl.cpp(1507) : error C3861: 'CertFreeCertificateContext': identifier not found
    qsslsocket_openssl_symbols.cpp
    Generating Code...
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_arm\cl.EXE"' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: 'cd' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: 'cd' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: 'cd' : return code '0x2'
    Stop.
    

    It seems to me that there is something wrong with the OpenSSL library.
    Does anyone have a clue what I can do to fix the issue ?


Log in to reply
 

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