Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. [SOLVED] MinGW 4.6 Building Qt\4.8.4: ld.exe out of memory allocating .............. bytes
Forum Updated to NodeBB v4.3 + New Features

[SOLVED] MinGW 4.6 Building Qt\4.8.4: ld.exe out of memory allocating .............. bytes

Scheduled Pinned Locked Moved Installation and Deployment
8 Posts 4 Posters 9.4k Views 1 Watching
  • 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.
  • Q Offline
    Q Offline
    QMartin
    wrote on last edited by
    #1

    Hello!

    I've read a lot around here and there about failure installing Qt versions with MinGW, and I have the same problem: when building QtGui my compiler runs out of memory (did it with MinGW 4.6 and Qt 4.8.4 in Vista under debug and release). I understood, correct me if I'm wrong, that this is a linker problem. Having read that ld.exe has two options: --no-keep-memory and --large-adress-aware, I was wondering how could I pass these options from mingw32-make to try a rebuild (is this possible anyway? or how does this compiling-linking process work?)

    Moreover, these two options are "ld: emulation specific options:" What does this mean? Aren't they "normal" options?

    And finally: when specifying mingw32-make to keep going even if errors occurred, QtGui release library was successfully created, strange or not?

    I didn't want to be repetitive about this matter, but I didn't found a satisfactory answer (or looked at the wrong places...)

    Thanks in advance!

    1 Reply Last reply
    0
    • K Offline
      K Offline
      koahnig
      wrote on last edited by
      #2

      How did you configure the build?
      Did you use mkspecs\win32-g++-4.6 settings for compilation?

      Vote the answer(s) that helped you to solve your issue(s)

      1 Reply Last reply
      0
      • L Offline
        L Offline
        lgeyer
        wrote on last edited by
        #3

        Try a different MinGW distribution (for example "mingw-builds":http://sourceforge.net/projects/mingwbuilds/).

        From one's own experience I can tell you that most 'out of memory' problems are results of memory leaks or bugs in the linker, not insufficient memory.

        1 Reply Last reply
        0
        • Q Offline
          Q Offline
          QMartin
          wrote on last edited by
          #4

          @koahnig

          bq. Did you use mkspecs\win32-g++-4.6 settings for compilation?

          Hey, thanks to that I realized in mkspecs folder there were two possible options: mkspecs\win32-g++ and mkspecs\win32-g++4.6. Then I looked to my QMAKESPEC variable and found it was set to win32-g++ (hope this was done by default). The difference is that the qmake.conf for 4.6 adds a -fno-keep-inline-dllexport to the win32-g++ qmake.conf's file. Sounds great.

          I'm gonna try to build it with -platform win32-g++4.6 and lets see what happens. If not I'll try what Lukas said.

          Looking forward to success!

          1 Reply Last reply
          0
          • K Offline
            K Offline
            koahnig
            wrote on last edited by
            #5

            Just to provide the complete information on this discussion.

            I have successfully compiled Qt 4.8.3 a while ago using MinGW 4.6.2 with the mkspecs\win32-g++4.6 settings. This is on Windows 7 64 bit.

            Lateron I could compile successfully also on another machine Qt 4.8.4 with mkspecs\win32-g++4.6 and MinGW 4.7.2 (also Win7 64 bit).

            I have used MinGW 32 bit versions only. They have been downloaded from http://mingw.org/ directly. As you can see from the discussions in "this thread":http://qt-project.org/forums/viewthread/23519/ it is most likely not the best choice, especially when coming to 64 bit version.

            Vote the answer(s) that helped you to solve your issue(s)

            1 Reply Last reply
            0
            • Q Offline
              Q Offline
              QMartin
              wrote on last edited by
              #6

              Hi!

              Sorry for the delay guys! I managed to do it correctly (it is still compiling, right now it has taken 5 hours!) I did what you said koahnig, but didn't work. The same happened with other MinGW version, sorry Lukas (I have another question about this anyway, but first things first).

              As the only place where mingw32-make crashed was on the Makefile of QtGuid4.dll, I opened the Makefile.Debug of gui's project and modified it slightly (after configure.exe finished). I read that with the -Wl option, g++ compiler links with ld.exe (read the help for more info). The commands following -Wl are just options for ld.exe.

              So in the Makefile.Debug where it is written

              @LFLAGS = -mthreads -shared -Wl,--out-implib,c:\Qt\4.8.4\lib\libQtGuid4.a@

              I completed it with

              @LFLAGS = -mthreads -shared -Wl,--out-implib,c:\Qt\4.8.4\lib\libQtGuid4.a,--large-address-aware,--no-keep-memory@

              Now I have my QtGuid4.dll created in Qt\4.8.4\lib folder and everything is going right. Just got one warning, but I think it can be ignored:

              JavaScriptCore/wtf/NullPtr.h:48:1: warning: identifier 'nullptr' will become a keyword in C++0x [-Wc++-compat]

              Now my final question: I can't remember where I downloaded my MinGW, but could it be that for the same version (for example 4.6) we could have different binaries produced from different but similar code? (Just as they are free software?) I can't find any other reason to explain why it succeeded to you and not to me :( Don't think this is a bug.

              Thanks for your time guys! I'll mark it as solved! (but please, answer my last question ;) )

              Best regards

              1 Reply Last reply
              0
              • F Offline
                F Offline
                fbertran
                wrote on last edited by
                #7

                Hello, I've similar problem when i compile QT 4.8.4 and mingw 4.4.

                @collect2.exe: error: ld returned 1 exit status
                mingw32-make[2]: *** [....\lib\QtGuid4.dll] Error 1
                mingw32-make[2]: Leaving directory 'C:/Qt/4.8.4/src/gui'
                mingw32-make[1]: *** [debug-all] Error 2
                mingw32-make[1]: Leaving directory 'C:/Qt/4.8.4/src/gui'
                mingw32-make: *** [sub-gui-make_default-ordered] Error 2@

                I'm new user with QT and i don't find makefile.debug to open and make your soluce. Where is it please?

                1 Reply Last reply
                0
                • Q Offline
                  Q Offline
                  QMartin
                  wrote on last edited by
                  #8

                  @fbertran

                  Hello, you can find it in your Qt directory in: Qt\4.8.4\src\gui

                  Regards

                  1 Reply Last reply
                  0

                  • Login

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Categories
                  • Recent
                  • Tags
                  • Popular
                  • Users
                  • Groups
                  • Search
                  • Get Qt Extensions
                  • Unsolved