1

什么决定了我的可执行 C++ 程序文件的大小?显然,它不仅仅取决于变量的大小/数量。如何在保持变量数量不变的情况下减小大小?

4

4 回答 4

4

有很多因素。

  • 编译器优化
  • 静态/动态链接
  • 静态分配内存
  • 调试信息
  • 剥离/非剥离二进制文件

gcc您可以使用它来-Os优化结果的大小,但这可能会对性能产生影响。

于 2012-10-16T18:22:27.660 回答
1
  1. 动态链接到 C++ 运行时。
  2. 在没有调试信息的情况下编译可执行文件。
  3. 使用“优化大小”标志进行编译。
  4. 如果可以,请删除 #iostream 和 fstream,并改用低级别
  5. 此外,使用大量模板也会导致大小增加
  6. 使用大量内联函数会导致大小增加。
  7. 如果你有很多静态和全局变量,那么尽可能减少它们。
于 2012-10-16T18:23:03.993 回答
1

除了其他答案之外,要记住的另一件事是内联。过多的函数内联会显着增加可执行文件的大小。

于 2012-10-16T18:24:33.933 回答
1

通常,可执行文件的大小并不会很大程度上取决于您拥有多少变量常量。根据您所谈论的不同操作系统,这些是可能影响您的可执行文件大小的一些方面:

  1. 静态链接到可执行文件的资源和库。
  2. 您选择生成二进制文件的编译器选项。
  3. 可能尚未从可执行文件中删除的符号文件和其他调试工具。

这个答案似乎很相关:) 减小可执行文件大小的过程

于 2012-10-16T18:26:04.807 回答