Updated Windows SDK Visual C++ Cross Compilers


During Windows SDK setup you are given the option to select VC++ compilers for every platform you wish to develop for.  The Windows SDK for Server 2008 and .NET Framework 3.5 (available as a beta now) ships 5 new VC++ version 9 (Visual Studio 2008) compilers which are installed in this way:

 






















































Your host machine is…


You want to target…


You should select this SDK compiler…


And the SDK will install this compiler…


X86


X86


X86


X86 native compiler


X86


X64


X64


X86_amd64 cross-compiler


X86


IA64


IA64


X86_IA64 cross-compiler


X64


X64


X64


X64 native compiler


X64


X86


X86


X86_amd64 cross-compiler


X64


IA64


IA64


X86_IA64 cross-compiler


IA64


IA64


IA64


IA64 native compiler


IA64


X86


X86


X86_IA64 cross-compiler


IA64


X64


X64


X86_amd64 cross-compiler


 


The following list, created from the MSDN article How to: Enable a 64-Bit Visual C++ Toolset at the Command Line, describes the various versions of cl.exe (the Visual C++ compiler):


 


·         x86 on x86 (X86 native compiler): Allows you to create output files for x86 machines. 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 (X64 native compiler): Allows you to create output files for x64. This version of cl.exe runs as a native process on an x64 machine.


·         Itanium on Itanium (IA64 native compiler): Allows you to create output files for Itanium. This version of cl.exe runs as a native process on an Itanium machine.


·         x64 on x86 (X86_amd64 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 Windows operating system.


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


 


Having compiler issues?  Look for the Windows SDK Workaround articles coming out this month in advance of the RC0 release of the Windows SDK for Server 2008 and .NET Framework 3.5.  For example, see SDK Workaround: Visual C++ cross-compilers fail to launch on 64-bit platforms.  The Visual C++ Team has posted an interesting article, What compiler does the compiler team use and decoding version numbers. 

Comments (4)

  1. Jalf says:

    Is it just me who has a hard time figuring out how this ties in with Visual Studio? I mean, are these new compilers only for use with VS2k8? Or 2k5 as well? What information is available on how to choose which one to use? Where can I see what’s actually changed?

    And of course, *why* are compilers suddenly being shipped separately of Visual Studio?

  2. MSDN Archive says:

    The compilers in the new Windows Server 2008 and .NET Framework 3.5 SDK match (are exactly the same as) the compilers shipped with Visual Studio 2008.  In the Windows Vista RTM SDK or the Windows Vista Update SDK, the compilers matched the Visual Studio 2005 compilers.  You can use the compilers to develop apps using the command line build environment included with the SDK.  You can still use the compilers in Visual Studio 2008 in the VS IDE or in the Visual Studio command line build environment – they have not been removed.  

    The code samples that ship in the new SDK will work with Visual Studio 2005 OR with Visual Studio 2008.  Or, you can use the SDK command line build environment to build the samples.  Shipping compilers in the SDK gives developers more flexibility.

    You don’t need to know which compiler to choose.  The SDK setup will install the correct compiler (and headers and libraries) based on your platform (X86, X64 or IA64).  During setup, you’ll automatically get the right compiler by default to develop on your machine:

    • If you install the SDK on an X86 machine, the X86 compilers will install by default to allow you to develop 32-bit applications.  If you want to develop 64-bit apps, you should ALSO select the X64 the box for (or IA64) compiler during setup and the appropriate compilers will be installed for you.

    • If you install the SDK on an X64 machine, you will get the X64 native compiler and the X86 compiler by default and you will be able to develop either 32 or 64 bit applications.  If you want to develop IA64 applications, you should click the box for the IA64 compiler during setup and the appropriate compiler will be installed for you.

    The way compilers are installed is not a change from either past Windows SDKs or from what Visual Studio has shipped in the past.  The only difference is that the compilers have been upgraded from v8.0 to v9.0.

    Karin Meier

    Windows SDK Program Manager

    This posting is provided “AS IS” with no warranties, and confers no rights.

  3. This workaround applies to: · The prerelease Windows SDK for Windows Server 2008 and .Net Framework 3.5