2011-08-20 117 views
2

我有一个不是很大的项目。使用Visual Studio的C++编译器,可执行文件为100 + KB。但对于Gingw GCC,它可以达到500+ KB。同样的事情发生在Linux上。这是为了发布版本。对于调试构建,GCC产生1.4MB,而VS的C++编译器只产生400 + KB。造成如此巨大差异的原因是什么?它与静态/动态链接有什么关系?我能做些什么来减少GCC产生的可执行文件大小?为什么GCC与VCC相比产生巨大的可执行文件?

+0

Linux上的Visual C++? – Mehrdad

+0

如果你使用MS Studio动态链接,并且使用GCC静态链接,可能就是这样。 – stnr

回答

1
  • 都通过了-s标志GCC?

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

    一种方式来告诉是检查,如果你的VC-链接的可执行取决于msvcr80.dll(或不同的版本),看看你的GCC链接可执行取决于一些mingw DLL。如果他们这样做,那么他们是动态链接的;如果他们真的独立运行,那么他们是静态链接的。

+0

我现在无法检查我的VC构建标志。尽管我尝试了-shared-libgcc。它没有任何影响。 – neuron

相关问题