Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Update: Forum Guidelines & Code of Conduct


    Qt World Summit: Early-Bird Tickets

    (Solved) Building Qt5 with mingw64 on windows 7 64Bit

    Installation and Deployment
    4
    15
    16327
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mbreier last edited by

      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

      1 Reply Last reply Reply Quote 0
      • JKSH
        JKSH Moderators last edited by

        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

        Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

        1 Reply Last reply Reply Quote 0
        • M
          mbreier last edited by

          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.@
          1 Reply Last reply Reply Quote 0
          • JKSH
            JKSH Moderators last edited by

            Did you clean everything before re-configuring?

            Also try invoking configure.exe explicitly (as opposed to the configure script)

            Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

            1 Reply Last reply Reply Quote 0
            • M
              mbreier last edited by

              Yes I ran mingw32-make clean before re-configuring.

              The git repo does not contain configure.exe in the main directory, only the perl script. I have already installed a version 4.8.3 on this machine, can I use the configure.exe from this version?

              1 Reply Last reply Reply Quote 0
              • M
                mbreier last edited by

                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.

                1 Reply Last reply Reply Quote 0
                • JKSH
                  JKSH Moderators last edited by

                  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
                  @

                  Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                  1 Reply Last reply Reply Quote 0
                  • M
                    mbreier last edited by

                    Yes I'm using the standard windows cmd.exe. And I tried exactly the command you suggest. But I received the error message as described above.
                    Do you really use 64 bit mingw? If so, which package do you use?

                    1 Reply Last reply Reply Quote 0
                    • JKSH
                      JKSH Moderators last edited by

                      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?

                      Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                      1 Reply Last reply Reply Quote 0
                      • M
                        mbreier last edited by

                        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
                        1 Reply Last reply Reply Quote 0
                        • JKSH
                          JKSH Moderators last edited by

                          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

                          Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                          1 Reply Last reply Reply Quote 0
                          • L
                            lgeyer last edited by

                            [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.

                            1 Reply Last reply Reply Quote 0
                            • M
                              mbreier last edited by

                              Cool, this worked out of the box.

                              Thanx a lot

                              1 Reply Last reply Reply Quote 0
                              • M
                                maitai last edited by

                                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 2

                                C:\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?

                                1 Reply Last reply Reply Quote 0
                                • M
                                  maitai last edited by

                                  As often as soon as I posted the previous message I found it. Needed to set QMAKESPEC=QTDIR\mkspecs\win32-g++ and all seems ok now.

                                  Sorry for the disturbance, anyway I hope it might be useful to someone...

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post