为什么GCC比VCC产生巨大的可执行文件?

时间:2011-08-20 17:26:42

标签: gcc size executable

我有一个不太大的项目。使用Visual Studio的C ++编译器,可执行文件是100 + KB。但是对于mingw GCC来说,它可以达到500+ KB。同样的事情发生在Linux上。这是发布版本。对于调试构建,GCC产生1.4MB而VS的C ++编译器仅产生400 + KB。导致这种巨大差异的原因是什么?它与静态/动态链接有什么关系吗?我该怎么做才能减少GCC产生的可执行文件大小?

2 个答案:

答案 0 :(得分:2)

请参阅此页面,了解如何缩小GCC输出大小:http://wiki.wxwidgets.org/Reducing_Executable_Size

答案 1 :(得分:1)

  • 您是否已将-s标志传递给GCC?

  • Visual Studio是静态还是动态地与CRT链接? GCC怎么样? VC可能是动态链接(/MD标志,而不是/MT),而GCC静态链接(-static-libgcc标志和otehrs)...尝试使它们保持一致,然后查看是否有区别。

    一种方法是检查VC链接的可执行文件是否依赖于msvcr80.dll(或不同版本),并查看您的GCC链接可执行文件是否依赖于某些mingw DLL。如果他们这样做,那么他们是动态联系的;如果它们真正独立运行,那么它们就是静态链接的。