(Solved) Building Qt5 with mingw64 on windows 7 64Bit
-
Hi,
I ran in a problem when trying to build Qt5 on windows7 64 bit machine with the latest mingw64 setup.
- I downloaded the latest mingw build from here "http://sourceforge.net/projects/mingwbuilds/" and installed it in C:\ming64 and
also added the path to the enviroment PATH variable. - I downloaded the latest source with GIT in C:\qt5
- I ran cmd and changed directory to c:\qt5
- I ran configure -developer-build -opensource -nomake examples -nomake tests -opengl desktop
- I immediately got the error message libgcc_s_dw2-1.dll not found.
In the mingw64\bin directory there is no libgcc_s_dw2-1.dll, there is only a libgcc_s_sjlj.dll.
I also tried first to run configure with the 32 bit mingw installation and after configure switching to 64 bit, but qmake is built by configure with the 32 bit mingw dlls and will cause the same error when starting mingw32-make.
Is there a way to built Qt5 with the 64 bit mingw installation?
Thanks
Michael - I downloaded the latest mingw build from here "http://sourceforge.net/projects/mingwbuilds/" and installed it in C:\ming64 and
-
Hmm... looks like MinGW-Builds only provides the Dwarf version on 32-bit Windows (see https://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.2/32-bit/threads-win32/ vs https://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.2/64-bit/threads-win32/ )
You could try a different flavour of MinGW (MinGW-w64 or TDM-GCC); they might have libgcc_s_dw2-1.dll
-
Thanks for the answer, so I tried with mingw-w64 with a personal built from rubenvb which also only contains the sjlj dll.
Then I tried with TDM-GCC which contains the dw2 dll, but configure crashes just after starting with the following output:@c:\qt5>configure -developer-build -opensource -nomake examples -nomake tests -op
engl desktop- c:/qt5/qtbase/configure -developer-build -opensource -nomake examples -nomake
tests -opengl desktop
Can't spawn "c:/qt5/qtbase/configure": No error at c:\qt5\configure line 77.
*** qtbase/configure exited with non-zero status.@
- c:/qt5/qtbase/configure -developer-build -opensource -nomake examples -nomake
-
Did you clean everything before re-configuring?
Also try invoking configure.exe explicitly (as opposed to the configure script)
-
-
some more info:
When I try to start the configure.exe from qt5 which is in c:/qt5/qtbase I get the following message from winows:@Problemsignatur:
Problemereignisname: APPCRASH
Anwendungsname: configure.exe
Anwendungsversion: 0.0.0.0
Anwendungszeitstempel: 50b381cc
Fehlermodulname: libstdc++-6.dll
Fehlermodulversion: 0.0.0.0
Fehlermodulzeitstempel: 5054e689
Ausnahmecode: c0000096
Ausnahmeoffset: 000952c1
Betriebsystemversion: 6.1.7601.2.1.0.256.48
Gebietsschema-ID: 1031
Zusatzinformation 1: 0a9e
Zusatzinformation 2: 0a9e372d3b4ad19135b953a78882e789
Zusatzinformation 3: 0a9e
Zusatzinformation 4: 0a9e372d3b4ad19135b953a78882e789@unfortunately in German...
The configure.exe from my Qt 4.8.3 installation is not working at all, just gives me the list with possible parameters.
-
Sorry, my mistake; there is no configure.exe for Qt 5. The old configure.exe is incompatible with Qt 5 because the structure has changed completely.
Which shell are you using? I managed to build Qt 5 (Edit: 32-bit) using cmd.exe
Try:
@
C:\qt5>configure.bat -developer-build -opensource -nomake examples -nomake tests -opengl desktop
@ -
Wow, I'm quite terrible tonight... I should've mentioned that I have a 32-bit system >_> I used the 32-bit Dwarf version of MinGW-Builds.
The "Can't spawn" message seems to be from Perl. I'm not quite sure what's happening on your system, but "this page":http://qt-project.org/wiki/Building-Qt-5-from-Git says:
[quote]To properly configure and build Qt 5 from source you also need Perl (>=5.14)...
Make sure that Perl is added to the path in front of git since that ships an outdated version (Perl 5.8), which will cause the scripts to fail.[/quote]Does this apply to you?
-
Yes Perl is in the PATH and when I enter perl -v in cmd.exe I get version 5.16.1 which should be OK.
After all, again I do not have any problems when I try this with a 32 Bit mingw version, only with the 64 Bit version. The 32 Bit version configures and compiles without problems. But I have a 64 Bit operation system and so I would like to build also programs for 64 Bit.OK, I assume the following and I hope that there is somebody out there who can confirm this or have another solution.
- configure.exe is build with 32 bit mingw and so needs the 32 bit dlls from mingw. This leads in an error when trying to run configure with the 64 bit mingw dlls.
- running configure.exe with 32 bit dlls will build qmake also with 32 bit dlls. This means also running qmake later with 64 bit dlls will also create an error (I already tried this). So it is not possible to built Qt5 with 64 bit dlls.
- Currently I do not see any possibility to use qt together with mingw 64 bit
-
I'm out of ideas here, sorry. Hopefully someone with the relevant experience will see this thread
People have managed to use MinGW to build 64-bit Qt 5 before: http://lists.qt-project.org/pipermail/development/2012-September/006665.html
All the best
-
[quote author="mbreier" date="1354019930"]Yes I ran mingw32-make clean before re-configuring.[/quote]Use <code>git submodule foreach --recursive git clean dfx</code> instead.
[quote author="mbreier" date="1354019930"]The git repo does not contain configure.exe in the main directory, only the perl script.[/quote]<code>configure</code> can be found <code>qtbase/tools/configure</code>, and it is built the first time it is invoked.
[quote author="mbreier" date="1354019930"]I have already installed a version 4.8.3 on this machine, can I use the configure.exe from this version?[/quote]No, you can't.Make sure that your source tree (see #1) and your environment is clean (no <code>QTDIR</code> is set, no other Qt in <code>PATH</code>) before (re-)building Qt.
-
Hello,
I am also trying to build QT5 (5.0.1 from git) with mingw64 (I have previously succeeded to build it with msvc2012 in 64bits but I need to deploy with mingw64).
I first run "qt5_tool -c" to clean everything, then I run configure with the following options:
-opensource -nomake examples -nomake tests -nomake demos -c++11 -opengl desktop -no-icu -platform win32-g++The configure phase seems to run smoothly, but I run into this error when executing mingw32-make:
[CODE]
C:\qt5\qt5>mingw32-make
cd qtbase\ && ( if not exist Makefile C:\qt5\qt5\qtbase\bin\qmake C:\qt5\qt5\qtb
ase\qtbase.pro -o Makefile ) && mingw32-make -f Makefile
mingw32-make[1]: Entering directory 'C:/qt5/qt5/qtbase'
cd src\ && ( if not exist Makefile C:\qt5\qt5\qtbase\bin\qmake C:\qt5\qt5\qtbase
\src\src.pro -o Makefile ) && mingw32-make -f Makefile
mingw32-make[2]: Entering directory 'C:/qt5/qt5/qtbase/src'
cd tools\ && ( if not exist Makefile C:\qt5\qt5\qtbase\bin\qmake C:\qt5\qt5\qtba
se\src\tools\tools.pro -o Makefile ) && mingw32-make -f Makefile
mingw32-make[3]: Entering directory 'C:/qt5/qt5/qtbase/src/tools'
cd bootstrap\ && ( if not exist Makefile C:\qt5\qt5\qtbase\bin\qmake C:\qt5\qt5
qtbase\src\tools\bootstrap\bootstrap.pro -o Makefile ) && mingw32-make -f Makefi
le
Project MESSAGE: C:\qt5\qt5\qtbase\bin\syncqt.bat -minimal -module QtCore -modul
e QtDBus -module QtXml -mkspecsdir C:/qt5/qt5/qtbase/mkspecs -outdir C:/qt5/qt5/
qtbase C:/qt5/qt5/qtbase
<srcbase> = C:/qt5/qt5/qtbase
<outbase> = C:/qt5/qt5/qtbase
QtDBus: created fwd-include header(s) for <srcbase>/src/dbus/ { qdbus_symbols_p.
h (1), qdbusabstractadaptor.h (1), qdbusabstractadaptor_p.h (1), qdbusabstractin
terface.h (1), qdbusabstractinterface_p.h (1), qdbusargument.h (1), qdbusargumen
t_p.h (1), qdbusconnection.h (1), qdbusconnection_p.h (1), qdbusconnectioninterf
ace.h (1), qdbusconnectionmanager_p.h (1), qdbuscontext.h (1), qdbuscontext_p.h
(1), qdbuserror.h (1), qdbusextratypes.h (1), qdbusintegrator_p.h (1), qdbusinte
rface.h (1), qdbusinterface_p.h (1), qdbusintrospection_p.h (1), qdbusmacros.h (
1), qdbusmessage.h (1), qdbusmessage_p.h (1), qdbusmetaobject_p.h (1), qdbusmeta
type.h (1), qdbusmetatype_p.h (1), qdbuspendingcall.h (1), qdbuspendingcall_p.h
(1), qdbuspendingreply.h (1), qdbusreply.h (1), qdbusserver.h (1), qdbusservicew
atcher.h (1), qdbusthreaddebug_p.h (1), qdbusunixfiledescriptor.h (1), qdbusutil
_p.h (1), qdbusvirtualobject.h (1), qdbusxmlparser_p.h (1) }
QtXml: created fwd-include header(s) for <srcbase>/src/xml/ { qtxmlglobal.h (1)
}
QtXml: created fwd-include header(s) for <srcbase>/src/xml/dom/ { qdom.h (1) }
QtXml: created fwd-include header(s) for <srcbase>/src/xml/sax/ { qxml.h (1) }
mingw32-make[4]: Entering directory 'C:/qt5/qt5/qtbase/src/tools/bootstrap'
mingw32-make -f Makefile.Release
mingw32-make[5]: Entering directory 'C:/qt5/qt5/qtbase/src/tools/bootstrap'
Makefile.Release:189: *** missing separator. Stop.
mingw32-make[5]: Leaving directory 'C:/qt5/qt5/qtbase/src/tools/bootstrap'
Makefile:34: recipe for target 'release' failed
mingw32-make[4]: *** [release] Error 2
mingw32-make[4]: Leaving directory 'C:/qt5/qt5/qtbase/src/tools/bootstrap'
Makefile:44: recipe for target 'sub-tools-bootstrap-make_first' failed
mingw32-make[3]: *** [sub-tools-bootstrap-make_first] Error 2
mingw32-make[3]: Leaving directory 'C:/qt5/qt5/qtbase/src/tools'
Makefile:53: recipe for target 'sub-tools-make_first' failed
mingw32-make[2]: *** [sub-tools-make_first] Error 2
mingw32-make[2]: Leaving directory 'C:/qt5/qt5/qtbase/src'
Makefile:42: recipe for target 'sub-src-make_first' failed
mingw32-make[1]: *** [sub-src-make_first] Error 2
mingw32-make[1]: Leaving directory 'C:/qt5/qt5/qtbase'
makefile:54: recipe for target 'module-qtbase-make_first' failed
mingw32-make: *** [module-qtbase-make_first] Error 2C:\qt5\qt5>
[/CODE]the wrong line where it says "wrong separator" is in bootstrap makefile:
{....\corelib\plugin}.cpp{.obj\release_shared}.obj::
$(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo.obj\release_shared\ @<<
$<
<<Any idea what I am doing wrong?