Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-52800

Multiple Build Errors with OpenSSL 1.1.0: C2027 / C2065 / C2227

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P2: Important
    • 5.7.0 RC
    • 5.7.0 Beta
    • Network: SSL
    • None
    • * Windows 10 x64 1511 (10586.218)
      * MSVC 2015 Update 2 x64
      * OpenSSL 1.1.0 Pre5 (Beta 2) x64 (custom-build)

    Description

      Building Qt with OpenSSL 1.1.0 pre5 Support fails because of the API Changes.

      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(69): error C2027: use of undefined type 'x509_st'
      
      C:\opensslx64\include\openssl/ossl_typ.h(163): note: see declaration of 'x509_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(69): error C2227: left of '->sha1_hash' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(93): error C2027: use of undefined type 'x509_st'
      
      C:\opensslx64\include\openssl/ossl_typ.h(163): note: see declaration of 'x509_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(93): error C2227: left of '->cert_info' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(93): error C2227: left of '->version' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(102): error C2027: use of undefined type 'x509_st'
      
      C:\opensslx64\include\openssl/ossl_typ.h(163): note: see declaration of 'x509_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(102): error C2227: left of '->cert_info' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(102): error C2227: left of '->serialNumber' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(238): error C2027: use of undefined type 'x509_st'
      
      C:\opensslx64\include\openssl/ossl_typ.h(163): note: see declaration of 'x509_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(238): error C2227: left of '->cert_info' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(238): error C2227: left of '->key' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(242): error C2027: use of undefined type 'evp_pkey_st'
      
      C:\opensslx64\include\openssl/ssl.h(1729): note: see declaration of 'evp_pkey_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(242): error C2227: left of '->type' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(246): error C2027: use of undefined type 'evp_pkey_st'
      
      C:\opensslx64\include\openssl/ssl.h(1729): note: see declaration of 'evp_pkey_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(246): error C2227: left of '->type' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(251): error C2027: use of undefined type 'evp_pkey_st'
      
      C:\opensslx64\include\openssl/ssl.h(1729): note: see declaration of 'evp_pkey_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(251): error C2227: left of '->type' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(256): error C2027: use of undefined type 'evp_pkey_st'
      
      C:\opensslx64\include\openssl/ssl.h(1729): note: see declaration of 'evp_pkey_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(256): error C2227: left of '->type' must point to class/struct/union/generic type
      
      c:\jom\jom.exe -f Makefile.Release all
      jom: C:\xsdf64\qtbase\src\network\Makefile.Debug [.obj\debug\qsslcertificate_openssl.obj] Error 2
      
      cl -c -FIqt_pch.h -Yuqt_pch.h -Fp.pch\debug\Qt5Networkd_pch.pch -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zc:throwingNew -Zi -MDd -D_HAS_EXCEPTIONS=0 -MP -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 /Fd..\..\lib\Qt5Networkd.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_NO_USING_NAMESPACE -DWINVER=0x0600 -D_WIN32_WINNT=0x0600 -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_NO_EXCEPTIONS -DQT_CORE_LIB -IC:\qt5src\qtbase\src\network -I. -IC:\opensslx64\include -IC:\icurlsx64\include -IC:\qt5src\qtbase\src\3rdparty\zlib -IC:\qt5src\qtbase\src\network\kernel -IC:\qt5src\qtbase\include -IC:\qt5src\qtbase\include\QtNetwork -I..\..\include -I..\..\include\QtNetwork -IC:\qt5src\qtbase\include\QtNetwork\5.7.0 -IC:\qt5src\qtbase\include\QtNetwork\5.7.0\QtNetwork -Itmp -IC:\qt5src\qtbase\include\QtCore\5.7.0 -IC:\qt5src\qtbase\include\QtCore\5.7.0\QtCore -IC:\qt5src\qtbase\include\QtCore -I..\..\include\QtCore -I.moc\debug -IC:\qt5src\qtbase\mkspecs\win32-msvc2015 -Fo.obj\debug\ @C:\TEMP\qsslcontext_openssl.obj.6936.657.jom
      qsslcontext_openssl.cpp
      
      c:\jom\jom.exe -f Makefile.Release all
      cd tools\qdbusxml2cpp\ && ( if not exist Makefile C:\xsdf64\qtbase\bin\qmake C:\qt5src\qtbase\src\tools\qdbusxml2cpp\qdbusxml2cpp.pro -o Makefile ) && c:\jom\jom.exe -f Makefile
      c:\jom\jom.exe -f Makefile.Release
      
      C:\qt5src\qtbase\src\network\ssl\qsslcontext_openssl.cpp(195): error C2065: 'SSL_CTRL_OPTIONS': undeclared identifier
      
      C:\qt5src\qtbase\src\network\ssl\qsslcontext_openssl.cpp(335): error C2065: 'SSL_CTRL_SET_ECDH_AUTO': undeclared identifier
      
      C:\qt5src\qtbase\src\network\ssl\qsslcontext_openssl.cpp(489): error C2027: use of undefined type 'ssl_session_st'
      
      C:\opensslx64\include\openssl/ssl.h(328): note: see declaration of 'ssl_session_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcontext_openssl.cpp(489): error C2227: left of '->tlsext_tick_lifetime_hint' must point to class/struct/union/generic type
      jom: C:\xsdf64\qtbase\src\network\Makefile.Debug [.obj\debug\qsslcontext_openssl.obj] Error 2
      jom: C:\xsdf64\qtbase\src\network\Makefile [debug-all] Error 2
      
      c:\jom\jom.exe -f Makefile.Release all
      jom: C:\xsdf64\qtbase\src\network\Makefile.Release [.obj\release\qsslcertificate_openssl.obj] Error 2
      
      cl -c -FIqt_pch.h -Yuqt_pch.h -Fp.pch\release\Qt5Network_pch.pch -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zc:throwingNew -O2 -MD -D_HAS_EXCEPTIONS=0 -MP -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -DUNICODE -DWIN32 -DWIN64 -DQT_NO_USING_NAMESPACE -DWINVER=0x0600 -D_WIN32_WINNT=0x0600 -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_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_CORE_LIB -DNDEBUG -IC:\qt5src\qtbase\src\network -I. -IC:\opensslx64\include -IC:\icurlsx64\include -IC:\qt5src\qtbase\src\3rdparty\zlib -IC:\qt5src\qtbase\src\network\kernel -IC:\qt5src\qtbase\include -IC:\qt5src\qtbase\include\QtNetwork -I..\..\include -I..\..\include\QtNetwork -IC:\qt5src\qtbase\include\QtNetwork\5.7.0 -IC:\qt5src\qtbase\include\QtNetwork\5.7.0\QtNetwork -Itmp -IC:\qt5src\qtbase\include\QtCore\5.7.0 -IC:\qt5src\qtbase\include\QtCore\5.7.0\QtCore -IC:\qt5src\qtbase\include\QtCore -I..\..\include\QtCore -I.moc\release -IC:\qt5src\qtbase\mkspecs\win32-msvc2015 -Fo.obj\release\ @C:\TEMP\qsslcertificate_openssl.obj.7528.328.jom
      qsslcertificate_openssl.cpp
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(69): error C2027: use of undefined type 'x509_st'
      
      C:\opensslx64\include\openssl/ossl_typ.h(163): note: see declaration of 'x509_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(69): error C2227: left of '->sha1_hash' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(93): error C2027: use of undefined type 'x509_st'
      
      C:\opensslx64\include\openssl/ossl_typ.h(163): note: see declaration of 'x509_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(93): error C2227: left of '->cert_info' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(93): error C2227: left of '->version' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(102): error C2027: use of undefined type 'x509_st'
      
      C:\opensslx64\include\openssl/ossl_typ.h(163): note: see declaration of 'x509_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(102): error C2227: left of '->cert_info' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(102): error C2227: left of '->serialNumber' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(238): error C2027: use of undefined type 'x509_st'
      
      C:\opensslx64\include\openssl/ossl_typ.h(163): note: see declaration of 'x509_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(238): error C2227: left of '->cert_info' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(238): error C2227: left of '->key' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(242): error C2027: use of undefined type 'evp_pkey_st'
      
      C:\opensslx64\include\openssl/ssl.h(1729): note: see declaration of 'evp_pkey_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(242): error C2227: left of '->type' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(246): error C2027: use of undefined type 'evp_pkey_st'
      
      C:\opensslx64\include\openssl/ssl.h(1729): note: see declaration of 'evp_pkey_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(246): error C2227: left of '->type' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(251): error C2027: use of undefined type 'evp_pkey_st'
      
      C:\opensslx64\include\openssl/ssl.h(1729): note: see declaration of 'evp_pkey_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(251): error C2227: left of '->type' must point to class/struct/union/generic type
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(256): error C2027: use of undefined type 'evp_pkey_st'
      
      C:\opensslx64\include\openssl/ssl.h(1729): note: see declaration of 'evp_pkey_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcertificate_openssl.cpp(256): error C2227: left of '->type' must point to class/struct/union/generic type
      
      cl -c -FIqt_pch.h -Yuqt_pch.h -Fp.pch\release\Qt5Network_pch.pch -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zc:throwingNew -O2 -MD -D_HAS_EXCEPTIONS=0 -MP -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -DUNICODE -DWIN32 -DWIN64 -DQT_NO_USING_NAMESPACE -DWINVER=0x0600 -D_WIN32_WINNT=0x0600 -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_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_CORE_LIB -DNDEBUG -IC:\qt5src\qtbase\src\network -I. -IC:\opensslx64\include -IC:\icurlsx64\include -IC:\qt5src\qtbase\src\3rdparty\zlib -IC:\qt5src\qtbase\src\network\kernel -IC:\qt5src\qtbase\include -IC:\qt5src\qtbase\include\QtNetwork -I..\..\include -I..\..\include\QtNetwork -IC:\qt5src\qtbase\include\QtNetwork\5.7.0 -IC:\qt5src\qtbase\include\QtNetwork\5.7.0\QtNetwork -Itmp -IC:\qt5src\qtbase\include\QtCore\5.7.0 -IC:\qt5src\qtbase\include\QtCore\5.7.0\QtCore -IC:\qt5src\qtbase\include\QtCore -I..\..\include\QtCore -I.moc\release -IC:\qt5src\qtbase\mkspecs\win32-msvc2015 -Fo.obj\release\ @C:\TEMP\qsslcontext_openssl.obj.7528.2281.jom
      qsslcontext_openssl.cpp
      
      cd tools\qdbuscpp2xml\ && ( if not exist Makefile C:\xsdf64\qtbase\bin\qmake C:\qt5src\qtbase\src\tools\qdbuscpp2xml\qdbuscpp2xml.pro -o Makefile ) && c:\jom\jom.exe -f Makefile
      
      c:\jom\jom.exe -f Makefile.Release
      C:\qt5src\qtbase\src\network\ssl\qsslcontext_openssl.cpp(195): error C2065: 'SSL_CTRL_OPTIONS': undeclared identifier
      
      C:\qt5src\qtbase\src\network\ssl\qsslcontext_openssl.cpp(335): error C2065: 'SSL_CTRL_SET_ECDH_AUTO': undeclared identifier
      
      C:\qt5src\qtbase\src\network\ssl\qsslcontext_openssl.cpp(489): error C2027: use of undefined type 'ssl_session_st'
      
      C:\opensslx64\include\openssl/ssl.h(328): note: see declaration of 'ssl_session_st'
      
      C:\qt5src\qtbase\src\network\ssl\qsslcontext_openssl.cpp(489): error C2227: left of '->tlsext_tick_lifetime_hint' must point to class/struct/union/generic type
      
      jom: C:\xsdf64\qtbase\src\network\Makefile.Release [.obj\release\qsslcontext_openssl.obj] Error 2
      jom: C:\xsdf64\qtbase\src\network\Makefile [release-all] Error 2
      jom: C:\xsdf64\qtbase\src\Makefile [sub-network-make_first] Error 2
      jom: C:\xsdf64\qtbase\Makefile [sub-src-make_first] Error 2
      jom: C:\xsdf64\Makefile [module-qtbase-make_first] Error 2
      

      OpenSSL is custom build with the following Parameters:

      perl Configure no-ssl3 no-tls1 no-idea no-deprecated disable-weak-ssl-ciphers VC-WIN64A --prefix=C:\opensslx64
      

      Attachments

        Issue Links

          Activity

            People

              richmoore Richard Moore (qtnetwork)
              meermusik Oliver Niebuhr
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: