Solved Issue building qt 5.12 from latest git repo
-
thanks for your suggestion SGaist
So I ran:
configure ...
without -no-pch (pre-compiled headers I think?)ming32-make -j8
It started to recompile, but hit the same issue. Two questions for you:
- Do I need to clean the old configuration first?
- Do I need to do a make clean?
- Why do you suspect that
-no-pch
is a problem (just for my understanding)?
I read somewhere that QVector is there, and if you replace the
#include <QVector>
with#include "qvector.h"
that file then compiles - I tired this an it worked - but it just fails further on. <QDebug> is the next one - again if I lower-case it then that file compiles. -
- Yes
- Better would be to use an out of source build
- Such an idee, since the header is missing I was wondering whether the generated headers were properly created and if that option could be responsible.
-
@SGaist Ok - I am doing a git clean (at least for the top level) then a reconfigure.
Weirdly
...-make clean
seems to go on forever! stopped eventually.Sorry, what do you mean by out of source build - how do I do that (or link to how to do that)?
Thanks :)
-
As the name suggest, you build from a folder that is not in the sources.
Unix style:
cd /tmp mkdir build_qt cd build_qt /path/to/configure make make install
It's easy to adapt to Windows.
By the way, why not use the MinGW version provided with Qt ?
-
As it happens I was building 5.12.2 from source today. Long story short I hit the same problem you had, but in another module and another header. It was caused by a stale configuration cache file. So, run the "really clean tree" command from the wiki and it should fix itself. I do second @SGaist's advice to build out of the source tree, however!
-
@kshegunov Thanks for that, I was literally just trying to phrase a git command to clean everything - so that's a very timely reply : ))
I am not sure why I would have a stale config file though, since I checked out fresh, but I will definitely try this! - Also by using a "not in the source" build folder as @SGaist also mentioned then the stale config file issue should disappear anyway (I think) since its a fresh folder.
Anyway... trying now..
-
@SGaist With regard to the mingw that comes with qt - I did not see that in the repo? There is a folder called
gnuwin32
but that just contains a few other tools - no gcc/make tools. -
@SGaist @kshegunov hummm.... after a complete clean and build in a different folder and removed
-no-pch
, I still get the same error : ( -
It's provided through the installer but right now I can't tell exactly where you can get it from outside of said installer.
-
@code_fodder said in Issue building qt 5.12 from latest git repo:
I did not see that in the repo?
There's no compiler in the repo. When building from git it's your responsibility to have to toolchain set up beforehand. @SGaist is thinking about the online installer for Qt, which indeed comes with a
mingw
distribution that can be used directly. -
Could you post the configure summary as well, so we know what we're dealing with?
-
@SGaist @kshegunov Ah, ok, yes I have used that one in the past, but for re-compiling the whole project, I wanted to create a list of steps to be able to reproducibly compile qt statically. I fugured getting mingw tool chain from source forge to be the "cleanest" option (https://sourceforge.net/projects/mingw-w64/ - v7.3.0)
Otherwise I have to install qt AND download the source from git!? ... do you think that would make a difference?
@kshegunov out of curiosity how did your static configure/build for 5.12.2 differ from what I was doing? (just looking for other ideas)
-
@code_fodder said in Issue building qt 5.12 from latest git repo:
Otherwise I have to install qt AND download the source from git!? ... do you think that would make a difference?
You can install the source from the installer as well. But I doubt it'd make much of a difference.
@kshegunov out of curiosity how did your static configure/build for 5.12.2 differ from what I was doing? (just looking for other ideas)
I don't build statically. It was not much different, though, I stick to minimalistic builds:
$> git clone git://code.qt.io/qt/qt5.git 5.12 $> cd 5.12 $> git checkout 5.12 $> perl init-repository --module-subset=essential $> ./configure -developer-build -no-optimize-debug -opensource -confirm-license -nomake examples -nomake tests $> make -j12
from history. I didn't provide a prefix and did a
-developer-build
because I wanted to debug a module inside Qt itself. If you want this for application development the appropriate flags for configure are-debug -prefix <some-dir>
-
@kshegunov I have printed the config summary at the end of my question after where it says: update
-
Just tried a config like this
configure -debug -opensource -confirm-license -nomake examples -nomake tests -static -static-runtime -skip webengine -prefix "C:\install\Qt\5.12.1-static"
which more closley matches what @kshegunov mentioned - but I got the same error : (Note: git log yields (so I am also on 5.12 branch):
* 1c6f272 (HEAD -> 5.12, origin/HEAD, origin/5.12) Update submodules on '5.12' in qt5 * 391ba3a Update submodules on '5.12' in qt5 | * ce91433 (origin/dev) Fix failing to disable windows update service | * ab43850 Update submodules on 'dev' in qt5 | * d926dbe Update submodules on 'dev' in qt5 | * 99b46f7 Update submodules on 'dev' in qt5 | * 80339a1 Build MIPS64 with b2qt toolchain | * 5cfa563 Provision docker test servers based on Ubuntu 18.04 | * b4b2152 Start the docker machine and update with new TLS certificates | * 177df80 Docker Provisioning: Install docker test servers on Windows 10 (x86_64) | * ab3e348 Display the provisioned version of docker tool kits | * b97e448 Move and merge the provisioning scripts of docker to a shared folder | | * b0afdd4 (origin/5.13) Update submodules on '5.13' in qt5 | | * 2471d6d (tag: v5.13.0-alpha1) Update qtwebengine | | * 7bd38a4 Update submodules on '5.13' in qt5 | | * 26ff9bd Update submodules on '5.13' in qt5 | | * 9b84c71 Build MIPS64 with b2qt toolchain | | * 84aa9b7 Merge remote-tracking branch 'origin/dev' into 5.13 | | |\ | | |/ | |/| | * | 1830cca Update submodules on 'dev' in qt5
-
The configure seems okay to me. Very odd. Do you get the same if you don't do a static build?
PS. Also try with forward slashes to exclude some path escaping nonsense.
C:/install/Qt/5.12.1-static
-
@kshegunov I just did this:
rm * -r
(I have the linux like commands installed because I prefer them - but its still just a dos prompt)configure -debug -opensource -confirm-license -nomake examples -nomake tests -skip webengine -prefix "C:/install/Qt/5.12.1-sharedlibs
mingw32-make -j8
Same issue :((
I am going to try exactly what you did! and see...
-
Just be sure to run
git submodule foreach --recursive "git clean -dfx" && git clean -dfx
before eachconfigure
, to be completely certain there's no *.cache files left over from the previous attempt. -
@kshegunov good idea - I will do that.
While I am doing that, did you see this before: https://forum.qt.io/topic/95040/build-qt5-from-git-with-msys2-fails-on-wrong-includes
I just wander if its relevant. But I am not using msys or anything... just wanted to get your thoughts...
-
I don't know, it may be. I too use strawberry pearl when I do my windows testing (I develop and use Linux principally). You could try it if anything else doesn't work. It'd also allow you to run the repo's perl init script.