Jan*_*roň 17 c++ optimization executable mingw
我有一个简单的"Hello world"C++程序,在Win XP下由MinGW g ++编译器编译为500kB可执行文件.有人说这是由libstdc ++.dll的iostream库和静态链接引起的.
使用-s链接器选项有点帮助(减小50%的大小),但我只满足于<10kB可执行文件.有没有办法如何使用MinGW编译器实现这一目标?便携性对我来说不是一个大问题.
是否可以使用动态链接将libstdc ++.dll与可执行文件一起复制?如果是这样,如何实现这一目标?
解决了:我使用的是MinGW 3.4.现在我更新到最新的MinGW 4.6,尺寸减少了90%到50kB,-s选项甚至减少到9kB,这已经足够了.无论如何 - 感谢大家的帮助.在这里你得到我的结果
使用iostream的C++ Hello World程序
MinGW | no options | -s option
------------------------------
3.4 | 500kB | 286 kB
4.6 | 50kB | 9 kB
Run Code Online (Sandbox Code Playgroud)
wkl*_*wkl 12
要使用的标志:
-s
就像你一直在做剥离符号-lstdc++_s
指定动态链接 libstdc++.dll
-Os
优化二进制的大小.默认情况下,mingw静态链接到libstdc++.a
Windows.
请注意,该lstdc++_s
标志仅在MinGW中,GCC> 4.4,我相信.