[Solved]Building custom Qt from source
-
Can a custom build for Qt (5.6) be done with building SSL without the web engine (formerly web kit)? I did a checkout and called the script from git which pulled all the modules except the webkit. I included in the configure script the locations of the files needed for openssl. I get errors in the build as not being able to find several include files:
c:\qt\qt5\qtbase\include\qtnetwork\5.6.0\qtnetwork\private../../../../../src/network/ssl/qsslcontext_openssl_p.h(53) :
fatal error C1083: Cannot open include file: 'openssl/ssl.h': No such file or directory (access\qhttpnetworkreply.cpp)
qabstractprotocolhandler.cpp
qhttpprotocolhandler.cpp
c:\qt\qt5\qtbase\include\qtnetwork\5.6.0\qtnetwork\private../../../../../src/network/ssl/qsslcontext_openssl_p.h(53) :
fatal error C1083: Cannot open include file: 'openssl/ssl.h': No such file or directory (access\qhttpnetworkconnection.c
pp)
qspdyprotocolhandler.cpp
c:\qt\qt5\qtbase\include\qtnetwork\5.6.0\qtnetwork\private../../../../../src/network/ssl/qsslcontext_openssl_p.h(53) :
fatal error C1083: Cannot open include file: 'openssl/ssl.h': No such file or directory (access\qhttpnetworkconnectionch
annel.cpp)
qnetworkaccessauthenticationmanager.cpp
c:\qt\qt5\qtbase\include\qtnetwork\5.6.0\qtnetwork\private../../../../../src/network/ssl/qsslcontext_openssl_p.h(53) :
fatal error C1083: Cannot open include file: 'openssl/ssl.h': No such file or directory (access\qabstractprotocolhandler
.cpp)
qnetworkaccessmanager.cpp
c:\qt\qt5\qtbase\include\qtnetwork\5.6.0\qtnetwork\private../../../../../src/network/ssl/qsslcontext_openssl_p.h(53) :
fatal error C1083: Cannot open include file: 'openssl/ssl.h': No such file or directory (access\qhttpprotocolhandler.cpp
)
qnetworkaccesscache.cpp
c:\qt\qt5\qtbase\include\qtnetwork\5.6.0\qtnetwork\private../../../../../src/network/ssl/qsslcontext_openssl_p.h(53) :
fatal error C1083: Cannot open include file: 'openssl/ssl.h': No such file or directory (access\qspdyprotocolhandler.cpp
)Is the build possible? That is, SSL without the web engine? It seems that they are two distinct modules
-
Hi,
Yes, it's possible, but first you have to get OpenSSL for windows
-
Just
C:\OpenSSL_win32\include
orC:\OpenSSL_win32\include\openssl
? -
Then the path is one level too deep. You need to use
C:\openssl-1.0.2d\include\
-
@SGaist
Ok, I actually had one level down as you shown and the error persists. That is, ...\include\ and ...\include\openssl. Both were tried and yet had errors:
fatal error C1083: Cannot open include file: 'openssl/ssl.h': No such file or directory (access\qnetworkreplyhttpimpl.cpp) -
Might be a silly question but did you pass the corresponding -I and -L arguments to configure ?
-
When doing the -I and -L corrections, did you do it from a clean state ?
-
No: confclean.
Better yet: use a shadow build, this way you can keep your sources clean and just nuke the thing if you need to restart.
-
C:\Qt\qt5>nmake confclean
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.NMAKE : fatal error U1073: don't know how to make 'confclean'
Stop.Perhaps confclean is not a valid target in any of the created Makefiles?
-
confclean
actually doesn't exist in Qt 5. IIRC, it was hard to make it work with Qt's modular structure. See https://bugreports.qt.io/browse/QTBUG-34304 for a discussion.Did you get the source code from git? Or did you download the source package?
-
@JKSH
code.qt.io/qt using git -
Assuming that you checked out the code to C:\Qt\git, use the following commands to clean your source tree:
> cd C:\Qt\git\ > git clean -dfx > git submodule foreach "git clean -dfx"
-
@JKSH said:
Assuming that you checked out the code to C:\Qt\git, use the following commands to clean your source tree:
> cd C:\Qt\git\ > git clean -dfx > git submodule foreach "git clean -dfx"
So this is in regards to making a correction and perform a re-build? I didn't do that for the initial build.
From memory, I do a checkout, init-repository --no-webkit, and then perform the configure step and finally the call to nmake.
-
My bad, old reflex from Qt 4. However, I'd recommend an out of source build, so you don't have to clean anything, just nuke the current build folder content and restart
-
@SGaist said:
I'd recommend an out of source build, so you don't have to clean anything
Hi,
Not sure I understand what "out of source" means. I get the part about nuke the current folder. If what you mean is just delete the build folder and start again, then I must ask, does not doing a clean solve that?