Configure ERROR in Qt 5.8.0 Win + VC2013 + SSL + OpenSSL
-
Hey guys!
I like to move on from Qt 5.7.0 to 5.8.0 and so i did try to compile and test it on windows. So far no problems, some sql tags changed but nothing to over complicated to solve by myself. But when i try to compile with the latest OpenSSL Source i fail at the configure script.
My last attempt was:
configure -mp -static -static-runtime -debug-and-release -prefix "C:\Qt\Qt5.8.0-Static" -platform win32-msvc2013 -ssl -openssl -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -sql-sqlite -sql-odbc -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests
And the configure failed with error output:
ERROR: Feature 'openssl' was enabled, but the pre-condition '!features.securetransport && tests.open ssl' failed. ERROR: Feature 'ssl' was enabled, but the pre-condition 'config.winrt || features.securetransport || features.openssl' failed. Check config.log for details. Qmake failed, return code 3
Back in earlier versions the configure script did not check as far as i can tell and i solved the compiling errors by putting the OpenSSL includes into
\src\qtbase\src\network\openssl
But so far without any change. I did try to solve this by my own and also gave other options a chance like -openssl-linked or -openssl-runtime but the same error occurs. I used OpenSSL 1.1.0e and also an older version 1.1.0c - same errors.
Id does not matter if i compile it static or shared, static was just my last attempt.
Any ideas? Thanks!
-
Since OpenSSL is enabled it is looking for OpenSSL headers. This check is to ensure that OpenSSL is library and header files r found properly. Give the include path with -I option to say where OpenSSL header files exist. It should solve the problem.
-
@qDebug To add to @dheerendra : in such situations it is very helpful to add -v parameter to your configure call. With this parameter you will see what exactly was the problem (missing header files, missing libs,...).
-
@dheerendra said in Configure ERROR in Qt 5.8.0 Win + VC2013 + SSL + OpenSSL:
Since OpenSSL is enabled it is looking for OpenSSL headers. This check is to ensure that OpenSSL is library and header files r found properly. Give the include path with -I option to say where OpenSSL header files exist. It should solve the problem.
Sorry, didn't mention it but i did try that as well. Little side noticed: never worked before for me on Windows before. I don't think it ever worked since i used Qt on Windows + VC + Openssl.
@jsulm said in Configure ERROR in Qt 5.8.0 Win + VC2013 + SSL + OpenSSL:
@qDebug To add to @dheerendra : in such situations it is very helpful to add -v parameter to your configure call. With this parameter you will see what exactly was the problem (missing header files, missing libs,...).
+ cd /d C:\Qt\Qt5.8.0-Static\Src\qtbase\config.tests\unix\openssl && C:\Qt\Qt5.8.0-Static\Src\qtbase\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static console" C:/Qt/Qt5.8.0-Static/Src/qtbase/config.tests/unix/openssl + cd /d C:\Qt\Qt5.8.0-Static\Src\qtbase\config.tests\unix\openssl && set MAKEFLAGS=& nmake clean && set MAKEFLAGS=& nmake > .\openssl.cpp(40) : fatal error C1083: Cannot open include file: 'openssl/opensslv.h': No such file or directory
Not sure why on Windows the configure script is trying a "test" in \qtbase\config.tests\unix\openssl. There is also a qtbase\config.tests\win folder but almost empty. Also did try to copy the opensslv.h in serval paths so i may find the right one the script is looking for, no luck.
-
Hi,
You have to pass the path to the OpenSSL includes to configure using the
-I
option. You'll also likely have to pass the-L
option for the OpenSSL libs to be found. -
@SGaist You mean like this: http://stackoverflow.com/questions/24261974/how-to-build-qt5-with-openssl-support ? As i mentioned before, i did try that as well and not only in 5.8.0 it did not work for me, also never had before. Same error(s) as i posted in my first one.
Have you guys ever tried that in the same configuration as i am or is that just repeating the same advice some one else gave (maybe years?) ago?
configure -mp -static -static-runtime -debug-and-release -prefix "C:\Qt\Qt5.8.0-Static" -platform win32-msvc2013 -ssl -openssl -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -sql-sqlite -sql-odbc -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests
... is fine for 5.7.0. So what exactly changed?
Are there any proofen working examples for Qt 5.8.0 on Windows using Visual Studio 2013 compiler and latest Openssl?
-
@jsulm Sorry for the delay, i had some vacation :)
Here we go:
configure -mp -static -static-runtime -debug-and-release -prefix "C:\Qt\Qt5.8.0-Static" -I "C:\OpenSSL-Win32\include" -L "C:\OpenSSL-Win32\lib" -platform win32-msvc2013 -ssl -openssl -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -sql-sqlite -sql-odbc -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests ERROR: Feature 'openssl' was enabled, but the pre-condition '!features.securetransport && tests.open ssl' failed. ERROR: Feature 'ssl' was enabled, but the pre-condition 'config.winrt || features.securetransport || features.openssl' failed. Qmake failed, return code 3
config.log:
+ cd /d C:\Qt\Qt5.8.0-Static\Src\qtbase\config.tests\unix\openssl && C:\Qt\Qt5.8.0-Static\Src\qtbase\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static console" C:/Qt/Qt5.8.0-Static/Src/qtbase/config.tests/unix/openssl + cd /d C:\Qt\Qt5.8.0-Static\Src\qtbase\config.tests\unix\openssl && set MAKEFLAGS=& nmake clean && set MAKEFLAGS=& nmake > .\openssl.cpp(40) : fatal error C1083: Cannot open include file: 'openssl/opensslv.h': No such file or directory > NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\cl.EXE"' : return code '0x2' > Stop test config.network.tests.openssl FAILED
I just believe there is a bug in 5.8.0. Because in my include path there is a openssl/opensslv.h to be exact "C:\OpenSSL-Win32\include\openssl\opensslv.h" and i did copy the files to "C:\Qt\Qt5.8.0-Static\Src\qtbase\config.tests\unix\openssl" - same result. Why is there a config test for Unix on Windows anyways?
As i mentioned before: the -I and -L params never worked for me on Windows + Visual Studio compiler before, i posted my workaround above.
Is here some one who actually did compile 5.8.0 on Win + VC 2013 before, shared or static?
Thanks!
-
Hi,
Which version of OpenSSL are you using ?
-
@qDebug said in Configure ERROR in Qt 5.8.0 Win + VC2013 + SSL + OpenSSL:
I used OpenSSL 1.1.0e and also an older version 1.1.0c - same errors.
I guess the problem may not be the version of Openssl, because the configure script does not find the files, no matter what version. :(
-
Did you add
-I
and-L
options to configure so it can find the OpenSSL headers and libraries ? -
Did you check that you are using an OpenSSL version that's also built with VS2013 ?
-
@SGaist Yes. All version of Openssl i tested got VC libs and at least one i used in a VC project and compiled ok.
But why even care if the error messages tells:
> .\openssl.cpp(40) : fatal error C1083: Cannot open include file: 'openssl/opensslv.h': No such file or directory
If the testing script does not even find the opensslv.h why care about the openssl version at all? From my technical understanding i have to fix this issue first before i may even get into the version. Please correct me if i am wrong.
Thanks!
-
Just saw something, you should either pass your paths with double backslashes or use the forward slash unix notation. Single backslashes are used to escape the character that follows. IIRC, the configure script should be resistant to that but it still worth doing things right.
-
@qDebug you should use openssl 1.0.2h (or i,j,k) not openssl 1.1.0...... see http://wiki.qt.io/Qt_5.8_Tools_and_Versions
-
@SGaist did try that of course too. Just now with openssl 1.0.2k like
configure -mp -static -static-runtime -debug-and-release -prefix "C:\Qt\Qt5.8.0-Static" -I "C:\\Qt\\openssl-1.0.2k\\include" -L "C:\\Qt\\openssl-1.0.2k\\lib" -platform win32-msvc2013 -ssl -openssl -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -sql-sqlite -sql-odbc -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests
and
configure -mp -static -static-runtime -debug-and-release -prefix "C:\Qt\Qt5.8.0-Static" -I "C:/Qt/openssl-1.0.2k/include" -L "C:/Qt/openssl-1.0.2k/lib" -platform win32-msvc2013 -ssl -openssl -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -sql-sqlite -sql-odbc -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests
Openssl not found.
@stephane78 since i compiled older versions of Qt (5.7.0) using the same openssl version i thought it should also work with 5.8.0. But right now, i used latest 1.0.2k but since the script won't find any files, the result is the same.
Maybe we can take a shortcut here and some one may be so kind and post how it will work for sure?
Thanks!