我刚刚在我的新系统上安装了适用于 Windows Server 2008 和 .NET 3.5 的 Platform SDK,并且第一次尝试为 WIN64 编译一个项目。该程序的 Unicode Release 版本是为 32 位构建的(使用不再可用的 Free Toolkit 中的优化编译器),大小约为 2.8 MB。使用来自最新 PSDK 的 amd64 编译器,程序大小超过 5 MB。
我最关心程序的大小,所以一切都是用 /O1 开关构建的。我期待程序在为 64 位构建时会变得更大,但不是那么多。大小更符合 Express 版本的构建,其中(某些)优化不可用。
PSDK 中的编译器和 MSVC 2008 Professional 中的编译器是否创建大小非常不同的程序?PSDK 中的编译器是否以相同的方式优化,甚至根本优化?
感谢您的任何见解。
编辑:
该程序和所有链接库都是在命令行上使用相同的 makefile.vc 构建的,因此编译设置不太可能存在差异。我基本上只是使用另一个命令文件来启动具有适当环境的 shell 以进行 64 位编译。
以下是应用程序的尺寸:
VC++ 工具包 2003 32 位 cl.exe:13.10.3052 用于 80x86 2.916.352 平台 SDK 32 位 cl.exe:15.00.30729.01 用于 80x86 2.881.536 平台 SDK 64 位 cl.exe:15.00.21022.08 用于 x64 5.138.432
所以 64 位版本要大 78% :-(