<tfoot id='KKqcJ'></tfoot>
      1. <small id='KKqcJ'></small><noframes id='KKqcJ'>

        • <bdo id='KKqcJ'></bdo><ul id='KKqcJ'></ul>
        <i id='KKqcJ'><tr id='KKqcJ'><dt id='KKqcJ'><q id='KKqcJ'><span id='KKqcJ'><b id='KKqcJ'><form id='KKqcJ'><ins id='KKqcJ'></ins><ul id='KKqcJ'></ul><sub id='KKqcJ'></sub></form><legend id='KKqcJ'></legend><bdo id='KKqcJ'><pre id='KKqcJ'><center id='KKqcJ'></center></pre></bdo></b><th id='KKqcJ'></th></span></q></dt></tr></i><div id='KKqcJ'><tfoot id='KKqcJ'></tfoot><dl id='KKqcJ'><fieldset id='KKqcJ'></fieldset></dl></div>
        <legend id='KKqcJ'><style id='KKqcJ'><dir id='KKqcJ'><q id='KKqcJ'></q></dir></style></legend>

        如何减少 MinGW g++ 编译器生成的可执行文件的大小

        时间:2023-09-16

      2. <i id='Hrwnm'><tr id='Hrwnm'><dt id='Hrwnm'><q id='Hrwnm'><span id='Hrwnm'><b id='Hrwnm'><form id='Hrwnm'><ins id='Hrwnm'></ins><ul id='Hrwnm'></ul><sub id='Hrwnm'></sub></form><legend id='Hrwnm'></legend><bdo id='Hrwnm'><pre id='Hrwnm'><center id='Hrwnm'></center></pre></bdo></b><th id='Hrwnm'></th></span></q></dt></tr></i><div id='Hrwnm'><tfoot id='Hrwnm'></tfoot><dl id='Hrwnm'><fieldset id='Hrwnm'></fieldset></dl></div>
      3. <legend id='Hrwnm'><style id='Hrwnm'><dir id='Hrwnm'><q id='Hrwnm'></q></dir></style></legend>
        <tfoot id='Hrwnm'></tfoot>

        <small id='Hrwnm'></small><noframes id='Hrwnm'>

            <bdo id='Hrwnm'></bdo><ul id='Hrwnm'></ul>

                    <tbody id='Hrwnm'></tbody>
                1. 本文介绍了如何减少 MinGW g++ 编译器生成的可执行文件的大小?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我有一个简单的Hello world"C++ 程序,它在 Win XP 下由 MinGW g++ 编译器编译为 500kB 可执行文件.有人说是iostream库和libstdc++.dll的静态链接造成的.

                  I have a trivial "Hello world" C++ program that is compiled to 500kB executable by MinGW g++ compiler under Win XP. Some say that is caused by iostream library and static link of libstdc++.dll.

                  使用 -s 链接器选项有所帮助(减少了 50% 的大小),但我只对 <10kB 可执行文件感到满意.有什么方法可以使用 MinGW 编译器实现这一点吗?便携性对我来说不是一个大问题.

                  Using -s linker option helped a bit (reducing 50% size), but I would by satisfied only by <10kB executable. Is there any way how to achieve this using MinGW compiler? Portability is not a big concern for me.

                  是否可以使用动态链接将 libstdc++.dll 与可执行文件一起复制?如果是这样,如何实现这一目标?

                  Is it possible to copy libstdc++.dll with the executable using dynamic linking? If so, how to achieve this?

                  已解决:我使用的是 MinGW 3.4.现在我更新到最新的 MinGW 4.6,大小减少了 90% 到 50kB,使用 -s 选项甚至到 9kB,这完全足够了.无论如何 - 感谢大家的帮助.这是我的结果

                  Solved: I was using MinGW 3.4. Now I updated to latest MinGW 4.6 and the size was decreased by 90% to 50kB, with -s option even to 9kB, which is fully sufficient. Anyway - thanks everyone for help. Here you go my results

                  C++ Hello World 使用 iostream 的程序

                  C++ Hello World program using iostream

                  MinGW | no options | -s option
                  ------------------------------
                  3.4   | 500kB      | 286 kB
                  4.6   | 50kB       |   9 kB
                  

                  推荐答案

                  要使用的标志:

                  • -s 就像你一直在做的去除符号
                  • -lstdc++_s 指定动态链接到 libstdc++.dll
                  • -Os 优化二进制文件的大小.
                  • -s like you've been doing to strip symbols
                  • -lstdc++_s to specify dynamically linking against the libstdc++.dll
                  • -Os to optimize the binary for size.

                  默认情况下,mingw 静态链接到 Windows 上的 libstdc++.a.

                  By default mingw static links to libstdc++.a on Windows.

                  请注意,lstd​​c++_s 标志仅在 GCC > 4.4 的 MinGW 中,我相信.

                  Note that the lstdc++_s flag is only in MinGW with GCC > 4.4, I believe.

                  这篇关于如何减少 MinGW g++ 编译器生成的可执行文件的大小?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:编译器什么时候内联 C++ 代码? 下一篇:移动或命名返回值优化 (NRVO)?

                  相关文章

                  最新文章

                2. <legend id='L0MfO'><style id='L0MfO'><dir id='L0MfO'><q id='L0MfO'></q></dir></style></legend>
                  1. <small id='L0MfO'></small><noframes id='L0MfO'>

                      <i id='L0MfO'><tr id='L0MfO'><dt id='L0MfO'><q id='L0MfO'><span id='L0MfO'><b id='L0MfO'><form id='L0MfO'><ins id='L0MfO'></ins><ul id='L0MfO'></ul><sub id='L0MfO'></sub></form><legend id='L0MfO'></legend><bdo id='L0MfO'><pre id='L0MfO'><center id='L0MfO'></center></pre></bdo></b><th id='L0MfO'></th></span></q></dt></tr></i><div id='L0MfO'><tfoot id='L0MfO'></tfoot><dl id='L0MfO'><fieldset id='L0MfO'></fieldset></dl></div>

                        <bdo id='L0MfO'></bdo><ul id='L0MfO'></ul>
                    1. <tfoot id='L0MfO'></tfoot>