【发布时间】:2008-12-03 19:22:41
【问题描述】:
我刚刚在我的新系统上安装了适用于 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% :-(
【问题讨论】:
-
您应该确保环境变量不会影响其他方面。
-
谢谢你的提示,我明天去看看。还将使用 PSDK 编译器进行 32 位构建,以查看大小差异。
-
我没有发现环境变量有任何差异。
标签: visual-c++ sdk 64-bit