为什么我的 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 packagesEnable RTTIDebug InformationLink 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