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. Why does the size of the file grow so much with each release without changing the code?
Forum Updated to NodeBB v4.3 + New Features

Why does the size of the file grow so much with each release without changing the code?

Scheduled Pinned Locked Moved Unsolved General and Desktop
54 Posts 9 Posters 9.7k Views 4 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.
  • D duncan98

    @mrjj
    After I delete the build folder, clean up the project and rebuild, the size is increased compared to the previous one. The Qt version is 5.15.2

    mrjjM Offline
    mrjjM Offline
    mrjj
    Lifetime Qt Champion
    wrote on last edited by
    #12

    @duncan98
    so you clean the folder and rebuild
    If you do it again, this time the exe size is bigger ?

    D 1 Reply Last reply
    0
    • mrjjM mrjj

      @duncan98
      so you clean the folder and rebuild
      If you do it again, this time the exe size is bigger ?

      D Offline
      D Offline
      duncan98
      wrote on last edited by
      #13

      @mrjj
      yes

      mrjjM 1 Reply Last reply
      0
      • D duncan98

        @mrjj
        yes

        mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #14

        @duncan98
        and you go and delete the exe ?
        not just use the menu clean build folder ?

        D 1 Reply Last reply
        0
        • mrjjM mrjj

          @duncan98
          and you go and delete the exe ?
          not just use the menu clean build folder ?

          D Offline
          D Offline
          duncan98
          wrote on last edited by
          #15

          @mrjj
          yes

          mrjjM 1 Reply Last reply
          0
          • D duncan98

            @mrjj
            yes

            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by
            #16

            @duncan98

            Then its a bit odd as a clean build should be same size unless you add something new.

            D 1 Reply Last reply
            0
            • mrjjM mrjj

              @duncan98

              Then its a bit odd as a clean build should be same size unless you add something new.

              D Offline
              D Offline
              duncan98
              wrote on last edited by duncan98
              #17

              @mrjj
              The normal EXE file is only 2M, and the abnormal one is 100M

              1 Reply Last reply
              0
              • D Offline
                D Offline
                duncan98
                wrote on last edited by
                #18
                This post is deleted!
                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  duncan98
                  wrote on last edited by duncan98
                  #19

                  I think it may be the creator's problem

                  C 1 Reply Last reply
                  0
                  • D duncan98

                    I think it may be the creator's problem

                    C Offline
                    C Offline
                    ChrisW67
                    wrote on last edited by ChrisW67
                    #20

                    @duncan98 I am certain it has nothing to do with Qt Creator. Starting Qt Creator will not change an executable. Creator is not a C++ compiler; it is an editor that can launch a make process to build your executable for you. The compiler and linker are what produce the executable. In your case, this a GCC version. Producing the executable is not connected to running the executable.

                    The ways a Windows executable file can grow is:

                    • You put more code, or embedded resources, in it.
                    • You build a version with debug symbols, which will be a bit larger (but not usually an order of magnitude)
                    • You build a version with different compiler optimisation options.
                    • You change the compiler; different compilers will produce different sized results.
                    • Some external process, that is neither the compiler nor the running executable, opens the file and appends to the executable.

                    If you want to support your claimed behaviour with some evidence:

                    • Delete your build folder
                    • Verify that your target executable (wms.exe) does not exist.
                    • Build your application
                    • Post the entire content of the Qt Creator compiler output panel (copy and paste the text not a partial screen shot)
                    • Execute "dir wms.exe" in the build folder and post the result
                    • Delete the executable
                    • Build your application
                    • Post the entire content of the Qt Creator compiler output panel (copy and paste the text not a partial screen shot). Note that this should not include calls to compile C++ source, only a linker call.
                    • Execute "dir wms.exe" in the build folder and post the result
                    D 2 Replies Last reply
                    6
                    • C ChrisW67

                      @duncan98 I am certain it has nothing to do with Qt Creator. Starting Qt Creator will not change an executable. Creator is not a C++ compiler; it is an editor that can launch a make process to build your executable for you. The compiler and linker are what produce the executable. In your case, this a GCC version. Producing the executable is not connected to running the executable.

                      The ways a Windows executable file can grow is:

                      • You put more code, or embedded resources, in it.
                      • You build a version with debug symbols, which will be a bit larger (but not usually an order of magnitude)
                      • You build a version with different compiler optimisation options.
                      • You change the compiler; different compilers will produce different sized results.
                      • Some external process, that is neither the compiler nor the running executable, opens the file and appends to the executable.

                      If you want to support your claimed behaviour with some evidence:

                      • Delete your build folder
                      • Verify that your target executable (wms.exe) does not exist.
                      • Build your application
                      • Post the entire content of the Qt Creator compiler output panel (copy and paste the text not a partial screen shot)
                      • Execute "dir wms.exe" in the build folder and post the result
                      • Delete the executable
                      • Build your application
                      • Post the entire content of the Qt Creator compiler output panel (copy and paste the text not a partial screen shot). Note that this should not include calls to compile C++ source, only a linker call.
                      • Execute "dir wms.exe" in the build folder and post the result
                      D Offline
                      D Offline
                      duncan98
                      wrote on last edited by
                      #21

                      @ChrisW67
                      Thank you for your explanation. It should be related to the compiler. But something more strange happened. I uninstalled and reinstalled QT, and now I can't start it 😂

                      jsulmJ 1 Reply Last reply
                      0
                      • D duncan98

                        @ChrisW67
                        Thank you for your explanation. It should be related to the compiler. But something more strange happened. I uninstalled and reinstalled QT, and now I can't start it 😂

                        jsulmJ Offline
                        jsulmJ Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on last edited by
                        #22

                        @duncan98 You mean you can't start QtCreator? What exactly happens? Any error message?

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        D 2 Replies Last reply
                        1
                        • jsulmJ jsulm

                          @duncan98 You mean you can't start QtCreator? What exactly happens? Any error message?

                          D Offline
                          D Offline
                          duncan98
                          wrote on last edited by
                          #23

                          @jsulm
                          Creator failed to start without any response

                          jsulmJ 1 Reply Last reply
                          0
                          • D duncan98

                            @jsulm
                            Creator failed to start without any response

                            jsulmJ Offline
                            jsulmJ Offline
                            jsulm
                            Lifetime Qt Champion
                            wrote on last edited by
                            #24

                            @duncan98 Then start it from a terminal to see whether there are any errors/warnings.

                            https://forum.qt.io/topic/113070/qt-code-of-conduct

                            1 Reply Last reply
                            0
                            • C ChrisW67

                              @duncan98 I am certain it has nothing to do with Qt Creator. Starting Qt Creator will not change an executable. Creator is not a C++ compiler; it is an editor that can launch a make process to build your executable for you. The compiler and linker are what produce the executable. In your case, this a GCC version. Producing the executable is not connected to running the executable.

                              The ways a Windows executable file can grow is:

                              • You put more code, or embedded resources, in it.
                              • You build a version with debug symbols, which will be a bit larger (but not usually an order of magnitude)
                              • You build a version with different compiler optimisation options.
                              • You change the compiler; different compilers will produce different sized results.
                              • Some external process, that is neither the compiler nor the running executable, opens the file and appends to the executable.

                              If you want to support your claimed behaviour with some evidence:

                              • Delete your build folder
                              • Verify that your target executable (wms.exe) does not exist.
                              • Build your application
                              • Post the entire content of the Qt Creator compiler output panel (copy and paste the text not a partial screen shot)
                              • Execute "dir wms.exe" in the build folder and post the result
                              • Delete the executable
                              • Build your application
                              • Post the entire content of the Qt Creator compiler output panel (copy and paste the text not a partial screen shot). Note that this should not include calls to compile C++ source, only a linker call.
                              • Execute "dir wms.exe" in the build folder and post the result
                              D Offline
                              D Offline
                              duncan98
                              wrote on last edited by duncan98
                              #25

                              @ChrisW67
                              dir.jpg

                              compiler output

                              JonBJ C 2 Replies Last reply
                              0
                              • D duncan98

                                @ChrisW67
                                dir.jpg

                                compiler output

                                JonBJ Offline
                                JonBJ Offline
                                JonB
                                wrote on last edited by
                                #26
                                This post is deleted!
                                1 Reply Last reply
                                0
                                • jsulmJ jsulm

                                  @duncan98 You mean you can't start QtCreator? What exactly happens? Any error message?

                                  D Offline
                                  D Offline
                                  duncan98
                                  wrote on last edited by
                                  #27

                                  @jsulm
                                  I uninstall qt5.15.2 and install qt5.15.1. It just works

                                  1 Reply Last reply
                                  0
                                  • JoeCFDJ Offline
                                    JoeCFDJ Offline
                                    JoeCFD
                                    wrote on last edited by
                                    #28

                                    Wow, such a big difference between these two versions. I will check them out on Linux.

                                    1 Reply Last reply
                                    0
                                    • D duncan98

                                      @ChrisW67
                                      dir.jpg

                                      compiler output

                                      C Offline
                                      C Offline
                                      ChrisW67
                                      wrote on last edited by
                                      #29

                                      @duncan98
                                      Here is the very first call to a C++ compiler in your output:

                                      g++ -c -fno-keep-inline-dllexport -O2 -g -std=gnu++11 ...
                                      

                                      The option -g tells, "GCC to emit extra information for use by a debugger"
                                      https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options

                                      So, while you think you are generating a release build, g++ is embedding debugging information.

                                      I am not sure if the bundled MingW ships a strip.exe, but if it does, run it against a copy of mysoft.exe and look at the resulting size.

                                      Now the question is, how did that '-g' option get there. This is consistent with a normal debug build.
                                      This could be a deliberate action in your project, a stale Makefile, broken Project configuration in Qt Creator.

                                      You need to check:

                                      • The project configuration in Qt Creator to ensure you have a sane setup. You could delete the Qt Creator *.user file and import the project fresh.
                                      • Your PRO file or CMakeLists.txt for manipulations of the CFLAGS/CXXFLAGS.
                                      • Absolutely rerun qmake/cmake to regenerate your Makefile (delete it first to ensure it is generating the file you think).

                                      You could build the project from clean source outside QtCreator to eliminate that as any cause.

                                      D JoeCFDJ 2 Replies Last reply
                                      2
                                      • C ChrisW67

                                        @duncan98
                                        Here is the very first call to a C++ compiler in your output:

                                        g++ -c -fno-keep-inline-dllexport -O2 -g -std=gnu++11 ...
                                        

                                        The option -g tells, "GCC to emit extra information for use by a debugger"
                                        https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options

                                        So, while you think you are generating a release build, g++ is embedding debugging information.

                                        I am not sure if the bundled MingW ships a strip.exe, but if it does, run it against a copy of mysoft.exe and look at the resulting size.

                                        Now the question is, how did that '-g' option get there. This is consistent with a normal debug build.
                                        This could be a deliberate action in your project, a stale Makefile, broken Project configuration in Qt Creator.

                                        You need to check:

                                        • The project configuration in Qt Creator to ensure you have a sane setup. You could delete the Qt Creator *.user file and import the project fresh.
                                        • Your PRO file or CMakeLists.txt for manipulations of the CFLAGS/CXXFLAGS.
                                        • Absolutely rerun qmake/cmake to regenerate your Makefile (delete it first to ensure it is generating the file you think).

                                        You could build the project from clean source outside QtCreator to eliminate that as any cause.

                                        D Offline
                                        D Offline
                                        duncan98
                                        wrote on last edited by
                                        #30

                                        @ChrisW67
                                        I feel that creator has some obvious non-human bugs, such as making a makefile error for no reason, and the size of the released file is too large

                                        C 1 Reply Last reply
                                        0
                                        • D duncan98

                                          @ChrisW67
                                          I feel that creator has some obvious non-human bugs, such as making a makefile error for no reason, and the size of the released file is too large

                                          C Offline
                                          C Offline
                                          ChrisW67
                                          wrote on last edited by
                                          #31

                                          @duncan98 Do you actually want to solve the problem? Constantly asserting your feelings that Qt Creator is at fault is not helping anyone.

                                          Did you actually do any of the things I suggested?

                                          D 1 Reply Last reply
                                          1

                                          • Login

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