这段代码:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!\n";
return 0;
}
在Code::Blocks与GCC 4.4.1编译时,大小为457KB,在VS2010中只有8KB(八KB)。两个编译器都针对大小进行了优化。
有人知道为什么会有这样的差异吗?
这段代码:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!\n";
return 0;
}
在Code::Blocks与GCC 4.4.1编译时,大小为457KB,在VS2010中只有8KB(八KB)。两个编译器都针对大小进行了优化。
有人知道为什么会有这样的差异吗?
#include <stdio.h>
int main() {
printf("Hello world\n");
return 0
}
另一方面,使用gcc编译此应用程序时生成的最小EXE文件与使用C++功能无关。
你说得对,使用gcc编译的可执行文件显然更大,在你的情况下比vc++编译的大57倍。
主要原因是使用GCC编译的程序不需要任何外部依赖项即可运行,而使用VS2010编译的程序至少需要其运行时文件存在于系统中。
例如,假设你在一位没有安装vs2010的朋友的计算机上尝试运行它,而是尝试在早期的操作系统(如XP)上运行,甚至没有运行VS2010运行时文件的机会。
使用GCC构建的程序将没有问题,而使用VS2010构建的程序将抛出缺少运行时文件(依赖项)的错误。
希望这可以帮助到你,如果没有或者你有任何其他问题,请随时问我,我很乐意帮助你 :)