什么决定了我的可执行 C++ 程序文件的大小?显然,它不仅仅取决于变量的大小/数量。如何在保持变量数量不变的情况下减小大小?
问问题
1965 次
4 回答
4
有很多因素。
- 编译器优化
- 静态/动态链接
- 静态分配内存
- 调试信息
- 剥离/非剥离二进制文件
gcc
您可以使用它来-Os
优化结果的大小,但这可能会对性能产生影响。
于 2012-10-16T18:22:27.660 回答
1
- 动态链接到 C++ 运行时。
- 在没有调试信息的情况下编译可执行文件。
- 使用“优化大小”标志进行编译。
- 如果可以,请删除 #iostream 和 fstream,并改用低级别
- 此外,使用大量模板也会导致大小增加
- 使用大量内联函数会导致大小增加。
- 如果你有很多静态和全局变量,那么尽可能减少它们。
于 2012-10-16T18:23:03.993 回答
1
除了其他答案之外,要记住的另一件事是内联。过多的函数内联会显着增加可执行文件的大小。
于 2012-10-16T18:24:33.933 回答
1
通常,可执行文件的大小并不会很大程度上取决于您拥有多少变量常量。根据您所谈论的不同操作系统,这些是可能影响您的可执行文件大小的一些方面:
- 静态链接到可执行文件的资源和库。
- 您选择生成二进制文件的编译器选项。
- 可能尚未从可执行文件中删除的符号文件和其他调试工具。
这个答案似乎很相关:) 减小可执行文件大小的过程
于 2012-10-16T18:26:04.807 回答