不同的Visual Studio 14.0\VC\Bin文件夹解释

4
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin 下,我看到了许多不同的文件夹。我不明白其中一些文件夹的用途:

特别是 amd64_x86x86_amd64。如何同时拥有 x86amd64?它们在不同顺序下的含义是什么?

此外,我可以假设根文件夹(即 VC\Bin\)是为 x86 设计的吗?

(我特别寻找 cl.exe 文件。)

1个回答

7
这些子目录包含交叉编译器,它们在一种架构上运行并为另一种生成代码。支持三种架构:x86(32位英特尔/AMD)、amd64(64位英特尔/AMD,也称为x64)和arm。因此:
  • x86_amd64:包含一个32位编译器和链接器,可生成x64代码。可以在引导32位操作系统的构建服务器上使用。
  • amd64_x86:包含一个64位编译器和链接器,可生成x86代码。可用于处理非常大的源代码文件,使32位编译器耗尽内存。这不是人类编写的代码类型,但自动生成的代码可能会出错。
  • x86_arm和amd64_arm:分别是生成ARM代码的32位和64位编译器。请注意,针对ARM设备始终需要交叉编译器。这也是没有arm_x86和arm_amd64子目录的原因,因为您的开发机器没有ARM处理器。

使用开发人员命令提示符设置环境以手动运行cl.exe。


我对自己的实验感到困惑,我使用64位intel cpu + 64位Win8.1操作系统 + 安装在\ program files(x86)\文件夹中的32位MSVS 2015 IDE。实验如下:1-生成目标32位(x86)=> VS检查VC \ bin文件夹中的cl.exe。2-)生成目标64位(x64)=> VS检查VC \ bin \ x86-amd64文件夹。因此,我的主机是64位架构,但IDE(为32位)将其视为32位x86架构,并且在我要在64位主机上构建64位代码时使用x86到x64交叉编译器。因此,在您的答案中,主机的架构可以被替换为IDE为32位/ 64位吗?让你感到困惑? - Fat32
在MSVS v14.0\VC\bin位置下存在以下文件夹:1-) bin\,2-) bin\amd64,3-) bin\x86-amd64,4-) bin\amd64-x86...那么bin\amd64文件夹呢?在什么情况下我的IDE会使用它?感谢阅读。 - Fat32
项目 > 属性 > VC++ 目录 > "可执行文件目录" 设置。VS2015 已经有点老了,升级可能更容易。VS2019 及以上版本现在默认使用 64 位编译器。 - Hans Passant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接