Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. fatal error C1060: compiler is out of heap space (again)

fatal error C1060: compiler is out of heap space (again)

Scheduled Pinned Locked Moved Solved General and Desktop
32 Posts 9 Posters 6.5k Views 3 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.
  • hskoglundH Offline
    hskoglundH Offline
    hskoglund
    wrote on last edited by
    #20

    In my VS2002 installation there are 4 different cl.exe versions:
    c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\bin\Hostx86\x86\cl.exe
    c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\bin\Hostx86\x64\cl.exe
    c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\bin\Hostx64\x86\cl.exe
    c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\bin\Hostx64\x64\cl.exe

    Two of them (the ..\Hostx86\x64\cl.exe and the ..\Hostx64\x64\cl.exe will show the same output:
    "Microsoft (R) C/C++ Optimizing Compiler Version 19.43.34810 for x64" and both will compile and build 64 bit ..exe files for Qt6.

    So you have a 50% chance of running the correct compiler, i.e. the cl.exe in the subdirectory ..\Hostx64\x64

    1 Reply Last reply
    3
    • Christian EhrlicherC Christian Ehrlicher

      @Sprezzatura said in fatal error C1060: compiler is out of heap space (again):

      where cl
      INFO: Could not find files for the given pattern(s).

      Again: execute this on the command line where you also compiled your Qt. Execatly where you did 'cl -nologo'
      You are using a 32bit compiler which creates 64 bit executables. Or you have very low ram on your system which I doubt.

      SprezzaturaS Offline
      SprezzaturaS Offline
      Sprezzatura
      wrote on last edited by
      #21

      @Christian-Ehrlicher I'm not launching this from the command line. I'm using Qt Creator, which automatically creates a stream of commands, including launching cl.exe, followed by a ton of parameters.
      The output appears in the "Compile Output" window of the Qt Creator IDE.

      1 Reply Last reply
      0
      • Christian EhrlicherC Christian Ehrlicher

        @Sprezzatura said in fatal error C1060: compiler is out of heap space (again):

        where cl
        INFO: Could not find files for the given pattern(s).

        Again: execute this on the command line where you also compiled your Qt. Execatly where you did 'cl -nologo'
        You are using a 32bit compiler which creates 64 bit executables. Or you have very low ram on your system which I doubt.

        SprezzaturaS Offline
        SprezzaturaS Offline
        Sprezzatura
        wrote on last edited by
        #22

        @Christian-Ehrlicher

        Good news! It's working!

        The solution was to upgrade from VS 2022 ver. 17.13, to ver. 17.14.
        I tried getting VS to update itself, but it locked up and wiped itself. I had to download and re-install VS 17.14.

        Here's the kicker: I got the suggestion from OpenAI/ChatGPT!

        I'm an AI skeptic, but I have to give credit where it's due.

        Also, ChatGPT suggested "-bigobj", but that didn't make a difference.

        A sincere thanks to Christian and hskoglund from a 77-year old, half-blind hack :o)

        1 Reply Last reply
        2
        • SprezzaturaS Sprezzatura has marked this topic as solved on
        • S Offline
          S Offline
          SimonSchroeder
          wrote on last edited by
          #23

          Just as an aside (since I'm a little late to the party): You should turn on C++17 in the .pro file with the line

          CONFIG += c++17
          
          SprezzaturaS 1 Reply Last reply
          0
          • S SimonSchroeder

            Just as an aside (since I'm a little late to the party): You should turn on C++17 in the .pro file with the line

            CONFIG += c++17
            
            SprezzaturaS Offline
            SprezzaturaS Offline
            Sprezzatura
            wrote on last edited by Sprezzatura
            #24

            @SimonSchroeder I do have that included:

            versionAtLeast(QT_VERSION, 6.0.0) {
            	CONFIG += c++17	# Fails with Qt 5.13 
            	QMAKE_CFLAGS += -std:c++17                 # required for Qt 6
            }
            
            1 Reply Last reply
            0
            • SprezzaturaS Offline
              SprezzaturaS Offline
              Sprezzatura
              wrote last edited by
              #25

              Interesting update: I got the error again, appearing at random after days of successful compilation.

              I terminated Firefox, the problem went away!

              O 1 Reply Last reply
              0
              • S Offline
                S Offline
                SimonSchroeder
                wrote last edited by
                #26

                I occasionally have this problem, too. Here's what I have figured out: The task manager shows memory "in use" and "committed" memory. It's the committed memory that is of importance: Committed memory means that through allocations this amount of memory has been promised to some software, but the corresponding memory pages have not been accessed, yet (which is why memory "in use" can be lower). The reason why this memory is not available is because it was already allocated. This means that committed memory must be available at any time (because it is after allocation the program cannot figure out anymore that it would not have this memory, so it must be there). Once the committed memory is full, nothing works anymore (even when memory "in use" shows that you still have 32 GB left). This is why closing Firefox (which usually uses up a lot of memory) helped. Rebooting your computer also helps.

                Basically, "memory in use" is a useless metric in Windows 11. The only thing that matters is committed memory. (You can find programs that use a lot of committed memory if you select "Details" on the left pane of the task manager.)

                BTW, does anybody know something like a little widget for Windows 11 that shows committed memory? I would like to have an eye on this. Otherwise Windows will reboot like every other week or so because it ran out of memory (while memory "in use" still shows 32 GB left).

                JonBJ 1 Reply Last reply
                0
                • S SimonSchroeder

                  I occasionally have this problem, too. Here's what I have figured out: The task manager shows memory "in use" and "committed" memory. It's the committed memory that is of importance: Committed memory means that through allocations this amount of memory has been promised to some software, but the corresponding memory pages have not been accessed, yet (which is why memory "in use" can be lower). The reason why this memory is not available is because it was already allocated. This means that committed memory must be available at any time (because it is after allocation the program cannot figure out anymore that it would not have this memory, so it must be there). Once the committed memory is full, nothing works anymore (even when memory "in use" shows that you still have 32 GB left). This is why closing Firefox (which usually uses up a lot of memory) helped. Rebooting your computer also helps.

                  Basically, "memory in use" is a useless metric in Windows 11. The only thing that matters is committed memory. (You can find programs that use a lot of committed memory if you select "Details" on the left pane of the task manager.)

                  BTW, does anybody know something like a little widget for Windows 11 that shows committed memory? I would like to have an eye on this. Otherwise Windows will reboot like every other week or so because it ran out of memory (while memory "in use" still shows 32 GB left).

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote last edited by
                  #27

                  @SimonSchroeder said in fatal error C1060: compiler is out of heap space (again):

                  BTW, does anybody know something like a little widget for Windows 11 that shows committed memory? I would like to have an eye on this.

                  Can't you write this yourself with Qt? :)

                  1 Reply Last reply
                  0
                  • SprezzaturaS Sprezzatura

                    Interesting update: I got the error again, appearing at random after days of successful compilation.

                    I terminated Firefox, the problem went away!

                    O Offline
                    O Offline
                    ollarch
                    wrote last edited by
                    #28

                    @Sprezzatura I had the same problem. I have 3 simultaneous Visual Studio 2022 instances and Firefox with a lot of processes and huge memory usage. Another way to solve this is to limit the number of processors used to compile the solution as it will use less memory due less parallel compilation : Tools > Options > Project and solutions > Compilation and execution > Max number of parallel compilations ---> set it to a lower value.

                    1 Reply Last reply
                    0
                    • Christian EhrlicherC Christian Ehrlicher

                      @Sprezzatura said in fatal error C1060: compiler is out of heap space (again):

                      Any suggestions?

                      Use a 64bit compiler even when you compile for 32bits.

                      T Offline
                      T Offline
                      Taytoo
                      wrote last edited by
                      #29

                      @Christian-Ehrlicher said in fatal error C1060: compiler is out of heap space (again):

                      @Sprezzatura said in fatal error C1060: compiler is out of heap space (again):

                      Any suggestions?

                      Use a 64bit compiler even when you compile for 32bits.

                      I'm running into this error while compiling a large resource file (it has a single large resource). How do I check if my project is using 64-bit compiler on VS2026? fyi, my app is 32-bit

                      1 Reply Last reply
                      0
                      • Kent-DorfmanK Offline
                        Kent-DorfmanK Offline
                        Kent-Dorfman
                        wrote last edited by
                        #30

                        seem like you all are trying to treat the symptom and not the underlying cause. these types of problems are often the result of an #include that is cyclic because it does not have a proper macro guard around it. It is always much more convenient to blame the "out of date" toolchain, when in reality the problems are usually PEBCAK (problem exists between chain and keyboard) ;^)

                        Anyway, if it were my assignment I'd be looking for programmatic problems instead of toolchain issues.

                        The dystopian literature that served as a warning in my youth has become an instruction manual in my elder years.

                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          Taytoo
                          wrote last edited by
                          #31

                          In my case its a large resource file. I can make it work when I enable Two-Pass in Qt Resource compiler but sometimes it fails with error <resourcefilename> object file not found. So trying to make it work without Two-Pass enabled.

                          1 Reply Last reply
                          0
                          • T Offline
                            T Offline
                            Taytoo
                            wrote last edited by Taytoo
                            #32

                            Figured it out! For visual studio,

                            Go to Project properties -> Advanced (left menu) -> Preferred Build Tool Architecture. It'll be set to Default, which is x86. Set it to x64
                            

                            now no more compiler is out of heap space error. More Info

                            1 Reply Last reply
                            2

                            • Login

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