[SOLVED]Compiling Qt4.7.4 error on files of SSL, X64



  • OS: Windows2003 r2 Enterprise X64
    Source code: Qt4.7.4
    Compiler:VC++ 2008 64bit command

    first time, I use configure options like:
    @-platform win32-msvc2008 -opensource -debug -debug-and-release -no-phonon -fast -nomake examples -nomake demos -no-dsp -no-vcproj -no-cetest -no-s60 -qt-sql-odbc -qt-sql-sqlite -plugin-sql-odbc -plugin-sql-sqlite -no-qt3support -no-opengl -no-openvg -no-incredibuild-xge @
    and nmake has no error then continue to my programing. but soon I found I'v missed OpenSSL, and QWebview in my App can not show page for HTTPS, so i download OpenSSL win64 package and installed.

    Then add "-openssl" to the configure.exe and nmake again, but some error happened to stop:

        cl -c -FIqt_pch.h -Yuqt_pch.h -Fptmp\obj\debug_shared\QtNetworkd_pch.pc
    

    -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -W3 -w34100 -w34189 -MP -GR -EHsc -DQT_SH
    RED -DQT_THREAD_SUPPORT -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_BUILD_NET
    ORK_LIB -DQT_NO_USING_NAMESPACE -DQT_MAKEDLL -DQT_NO_CAST_TO_ASCII -DQT_ASCII_C
    ST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENA
    ION -D_USE_MATH_DEFINES -DQT_DLL -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -D
    T_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -I"....\include\QtCore" -I"....\in
    lude" -I"....\include\QtNetwork" -I"tmp\rcc\debug_shared" -I"tmp" -I"..\3rdpar
    y\zlib" -I"kernel" -I"....\include\ActiveQt" -I"tmp\moc\debug_shared" -I"....
    mkspecs\win32-msvc2008" -Fotmp\obj\debug_shared\ @C:\DOCUME~1\ADMINI~1\LOCALS~1
    Temp\nmA7.tmp
    qsslcertificate.cpp
    d:\qt\4.7.4\src\network\ssl\qsslconfiguration_p.h(88) : error C2146: syntax error : missing ')' before identifier“peerCertificate”
    d:\qt\4.7.4\src\network\ssl\qsslconfiguration_p.h(88) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    ...
    ..
    .
    It seemed something wrong with my SSL compiling. I have searched a lot but could not find a clue. can anyone help?


  • Lifetime Qt Champion

    Hi,

    What version of OpenSSL did you install ?

    By the way, since you're compiling your own version of Qt, why use such an old version ?



    1. The version of OpenSSL is Win64OpenSSL_Light-1_0_1e.exe.
    2. Because I have a project using Webkit and SSL created years ago, on Qt4.7 XP win32. I want to compile a version to win64, but Qt do not offer an official x64 version, so I have to do it myself.

    [quote author="SGaist" date="1367186924"]Hi, What version of OpenSSL did you install ? By the way, since you're compiling your own version of Qt, why use such an old version ?[/quote]


  • Lifetime Qt Champion

    The open ssl version seems right (Personally I use the full version)

    Since you recompile everything, why not use the latest Qt 4 (4.8.4) ?



  • I downloaded Qt4.8.4, compiled again, but some new error occured:
    DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constant
    platform\DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected end of file in macro expansion

    [quote author="SGaist" date="1367229921"]The open ssl version seems right (Personally I use the full version) Since you recompile everything, why not use the latest Qt 4 (4.8.4) ?[/quote]


  • Lifetime Qt Champion

    Did you download the zip file ?



  • Yes, I downloaded zip format Qt4.8.4 source code, and also install a non-light version of Win64OpenSSL.

    Error C2001 and C1057 seems some wrong writing with file "platform\DefaultLocalizationStrategy.cpp", at line 327, I googled and fixed it.

    Thanks to "SGaist" for your suggestions. I finnally got passed through building. Thanks again.

    [quote author="SGaist" date="1367305991"]Did you download the zip file ?[/quote]


  • Lifetime Qt Champion

    I'm glad you found a solution !

    Don't forget to update the thread's title to solved so other forum users may know that it's all good :)


Log in to reply
 

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