Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Explanation of different Visual Studio 14.0\VC\Bin folders

Under C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin, I see a number of different folders. I could not understand what some of them are for:

Specifically amd64_x86 and x86_amd64. How can you have both x86 and amd64 "together"? And what is the meaning of them in different order?

Also, can I assume that the root folder (i.e. VC\Bin\) is for x86?

(I was specifically looking for the cl.exe file.)

like image 574
RaelB Avatar asked Sep 06 '25 03:09

RaelB


1 Answers

These subdirs contain cross compilers. They run on one architecture and produce code for another. Three architectures are supported, x86 (32-bit Intel/AMD), amd64 (64-bit Intel/AMD, aka x64) and arm. So:

  • x86_amd64: contains a 32-bit compiler and linker that generate x64 code. Could be useful on a build server that boots a 32-bit operating system.
  • amd64_x86: contains a 64-bit compiler and linker that generate x86 code. Can be useful to tackle very large source code files that make a 32-bit compiler run out of memory. Not the kind of code that a human ever writes, but not unlikely to go wrong with auto-generated code.
  • x86_arm and amd64_arm: respectively a 32-bit and 64-bit compiler that generate ARM code. Note how targeting an ARM device always requires a cross-compiler. Also the reason there are no arm_x86 and arm_amd64 subdirs, your dev machine doesn't have an ARM processor.

Use the Developer Command Prompt to setup an environment to run cl.exe by hand.

like image 78
Hans Passant Avatar answered Sep 10 '25 00:09

Hans Passant