After installing Visual Studio, you may find programs with the same name appear in different folders such as the program cl.exe. There are several cl.exe’s:
- C:\Microsoft Visual Studio\xxxx\Community\VC\Tools\MSVC\xx.xx.xx.xx\bin\HostX86\x86\cl.exe
- C:\Microsoft Visual Studio\xxxx\Community\VC\Tools\MSVC\xx.xx.xx.xx\bin\HostX86\x64\cl.exe
- C:\Microsoft Visual Studio\xxxx\Community\VC\Tools\MSVC\xx.xx.xx.xx\bin\HostX64\x86\cl.exe
- C:\Microsoft Visual Studio\xxxx\Community\VC\Tools\MSVC\xx.xx.xx.xx\bin\HostX64\x64\cl.exe
What do HostX86/HostX64 stand for? What do x86/x64 stand for?
Well, HostX86/HostX64 are so called host platform; they are the platforms the compiler cl.exe is supposed to be put on(hosted). x86/x64 are so called target platform which are the platforms where cl.exe generated programs are supposed to run. But the host platform does not mean too much. As you see, this computer(Windows 64bit) hosts 4 versions of cl.exe’s all of which can run without problem because of the x86 virtual machines on x64 OS.