Compilation Qt 4.8.4 on Windows x64 without zlib
-
Hello!
I have to compile Qt 4.8.4 on Windows x64 without qt-zlib, because of another library, that is also using zlib inside.
I am using Visual Studio 2010, x64 command promptI used following configuration:
@configure.exe -opensource -platform win32-msvc2010 -no-qt3support -debug-and-release -system-zlib -nomake examples -nomake demos@Then, I compiled it using "this tutorial":http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/, so I used this command:
@..\jom\jom.exe -j 8@As system zlib, I had to compile "this source":https://code.google.com/p/zlib-win64/downloads/detail?name=zlib-1.2.7.f-win64-v1.7z&can=2 - Source code for ZLib 1.2.7 with mods for Windows x86 and x86-64 support
Unfortunately, compilation is stucked. It was compiling at least 7 hours, but last notable change was after 3,5 hours after starting, and now, for more than 3 hours is command prompt at one place, see image below
!http://private.mikita.eu/win64-qt484-without-zlib.png(changeproperties.cpp)!I tried it twice, on the empty source 'qt-4.8.4-everywhere'. First time it was compiled with this configuration, and it was working well (Except link error because of zlib library inside Qt and another Library, that cannot be compiled)
@configure.exe -opensource -platform win32-msvc2010 -no-qt3support -debug-and-release@Does anybody know what could fix this problem, or why it is happening?
Thank you for your answer and help! -
Try building with nmake. Jom can jam in some cases.
With 8 threads, it should take about 30 minutes, not 7 hours.
Quoting from Qt5 build guide:
[quote]Multicore building: To speed up building when using nmake, the compiler can be instructed to use all available CPU cores in one of the following ways:Pass the option -MP to Qt’s configure
Set the environment variable CL (specifying Visual Studio compiler options) to /MP (On the command line: set CL=/MP)
Use the tool jom [qt-project.org] instead of nmake. Note however, that it has issues with module interdependencies, which can cause builds to fail.[/quote] -
Thank you! I used -mp flag, but after few hourse it was also stuck, but now, at another process
@ c:\Qt\4.8.4x64\bin\uic.exe mainwindow.ui -o ui_mainwindow.h@Therefore, i just reconfigure without flag -mp, and run it with nmake.
After 5 hours, it was stucked at the same place. I just cancel the process, and simply re-run nmake.
Unfortunately, following fatal-error comes:
@c:\qt\4.8.4x64\tools\activeqt\testcon\ui_mainwindow.h(359) : fatal error C1070:
mismatched #if/#endif pair in file 'c:\qt\4.8.4x64\tools\activeqt\testcon\ui_mai
nwindow.h'@I tried delete this file (ui_mainwindow.h) and run nmake again, but it also stucked at this moment.
My actual configuration for building is just
@configure.exe -opensource -platform win32-msvc2010 -no-qt3support -debug-and-release -system-zlib@Before, I was building without flag '-system-zlib', that means, '-qt-zlib' was default value, and everything was successful.
Is there something wrong with flag -system-zlib? Is this activeqt - testcon needed? How can I make it not to be build?
Thank you for your help! -
Now I found "the stuck problem". There is some unexplained (and I do not have time to debug it line-by-line), but "uic.exe" generated with configuration mentioned above (-system-zlib), is not working properly with file tools/activeqt/testcon/mainwindow.ui, while the 'original' (32bit Qt 4.8.4 official binary) uic.exe is working well. I was trying to recompile uic.exe (just distclean & nmake), but it is always stuck.
After creating ui_mainwindow.h with 32bit uic.exe, compilation continues well, for now.
I think, I will create bug report for this...
-
Yes, this is likely a bug. You can report it "here":http://qt-project.org/wiki/ReportingBugsInQt.
-
I already did it "here":https://bugreports.qt-project.org/browse/QTBUG-30332
I hope, it will be fixed, or a solution will be found