Skip to main content
 首页 » 编程设计

visual-c++之编译 x64 代码时, "x86_amd64"和 "amd64"有什么区别

2024年09月07日18over140

用VC++编译代码时,MSDN为您提供使用 x86_amd64 工具集或 amd64 工具集(调用 vcvarsall.bat 时)之间的选项。

编译x64代码时如何在这两者之间进行选择? amd64 选项会生成比交叉编译器更高效的 x64 机器代码吗?

请您参考如下方法:

它与效率无关。 native 和交叉编译器都将生成相同的机器代码。但是,通过在 64 位工作站上运行 native 64 位编译器进程(更大的寄存器、更大的内存空间等),您将获得一些好处。

native 编译器只能在 Windows 的 64 位副本上运行,因此如果您的工作站是 32 位,则该编译器甚至无法运行。

交叉编译器旨在在 x86 机器上运行,即使它会通过 WoW 在 64 位 Windows 副本上运行;然而,没有理由这样做。

您链接的页面说得很好:

x64 on x86 (x64 cross-compiler)
Allows you to create output files for x64. This version of cl.exe runs as a 32-bit process, native on an x86 machine and under WOW64 on a 64-bit Widows operating system.

x64 on x64
Allows you to create output files for x64. This version of cl.exe runs as a native process on an x64 machine.

Thanks to Brian R. Bondy for the quote formatting