【问题标题】:What is the difference between x64 Native Tools Command Prompt and x64 Cross Tools Command Prompt?x64 Native Tools 命令提示符和 x64 Cross Tools 命令提示符有什么区别?
【发布时间】:2015-01-30 12:29:16
【问题描述】:

我在 64 位 Windows 8.1 上安装了 32 位 Visual Studio 2013。我有 5 个命令提示符:

  1. VS2013 的开发者命令提示符
  2. VS2013 ARM Cross Tools 命令提示符
  3. VS2013 x64 跨工具命令提示符
  4. VS2013 x64 原生工具命令提示符
  5. VS2013 x86 原生工具命令提示符

我不明白两者之间的区别:

  1. VS2013 与 VS2013 x86 本机工具的开发人员命令提示符 命令提示符
  2. VS2013 x64 跨工具命令提示与 VS2013 x64 本机工具命令提示

【问题讨论】:

标签: windows visual-studio visual-c++ command-prompt


【解决方案1】:

交叉编译器是在一个平台上执行但为另一个平台生成代码的编译器。您的机器有两个可以生成 x64 代码的编译器。一个是vc/bin/amd64_x86目录下的32位交叉编译器,另一个是vc/bin/amd64目录下的64位原生编译器。它们都生成完全相同的 x64 机器代码。

只有当您拥有 32 位操作系统时,您才必须使用交叉编译器。调试和测试它生成的程序是不愉快的,你需要另一台机器并使用远程调试器。好吧,也许是构建服务器。如果您有 64 位版本的 Windows,那么任何一种选择都可以,但您更喜欢“x64 Native”选择。编译器和链接器稍快一些,可以处理更大的程序。

这也解释了为什么您只有 ARM 的交叉编译器选择,而您的开发机器中没有 ARM 处理器。

【讨论】:

  • 好的,那么 VS2013 x64 Cross Tools 命令提示符是 32 位编译器吗?可以创建原生 64 位程序。
  • 所以,我有两个选择,我可以稍微澄清一下。使用 VS2015,我有 x64 x86 交叉工具和 x86 x64 交叉工具。在 64 位机器上编译 32 位代码应该使用哪一个?
  • 只有一个编译器可以生成 x86 代码,存放在 vc/bin 中。不是交叉编译器,它在 64 位操作系统上运行良好,这要归功于 wow64 模拟器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-25
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
相关资源
最近更新 更多