为什么我的 64 位可执行文件几乎比 32 位可执行文件大 3 倍?
Why is my 64bit executable almost 3x larger than my 32bit executable?
我制作了一个简单的 Hello World 程序,只包含一个表单和一个标有 "Hello World!" 的标签。我使用 C++ Builder 构建项目,首先是 64 位,然后是 32 位。
64 位可执行文件是 8,568 KB
。相比之下,32bit的可执行文件只有2,979 KB
.
为什么?
对于这两个项目,我禁用了 Link with runtime packages
、Enable RTTI
、Debug Information
和 Link with Dynamic RTL
。
两个项目都设置为 Release
模式。
C++ Builder 的版本是:
Embarcadero® C++Builder 10.3 Version 26.0.36039.7899
Update 3
C++ Builder 已从 32 位.exe
但不是 64 位的符号中剥离符号。
我 运行 strip helloworld.exe
在我的 64 位 .exe
上,它将文件大小从 8,568 KB
减少到 6,358 KB
。
同样的命令不会影响 32 位的大小 .exe
。
我制作了一个简单的 Hello World 程序,只包含一个表单和一个标有 "Hello World!" 的标签。我使用 C++ Builder 构建项目,首先是 64 位,然后是 32 位。
64 位可执行文件是 8,568 KB
。相比之下,32bit的可执行文件只有2,979 KB
.
为什么?
对于这两个项目,我禁用了 Link with runtime packages
、Enable RTTI
、Debug Information
和 Link with Dynamic RTL
。
两个项目都设置为 Release
模式。
C++ Builder 的版本是:
Embarcadero® C++Builder 10.3 Version 26.0.36039.7899
Update 3
C++ Builder 已从 32 位.exe
但不是 64 位的符号中剥离符号。
我 运行 strip helloworld.exe
在我的 64 位 .exe
上,它将文件大小从 8,568 KB
减少到 6,358 KB
。
同样的命令不会影响 32 位的大小 .exe
。