Mozilla, from time to time, might support building against multiple versions of the Windows SDK as a compatibility/transitional measure. If it does, several features will be disabled if you build with an SDK older than the default, which means that you'll have to specify a non-default SDK version explicitly.

Quick start

Follow the instructions for whichever version of Visual C++ you're using.

Visual Studio Professional 2013

This comes with the Windows 8.1 SDK included.

Visual Studio Express 2013 for Windows Desktop

This comes with the Windows 8.1 SDK included.

Visual Studio Professional 2012

This comes with the Windows 8.0 SDK included.

Visual Studio 2012 Express for Windows Desktop

This comes with the Windows 8.0 SDK included.

Visual C++ 10 (VS2010) Professional

This comes with the Windows 7 SDK, so you should be all set out of the box.

Visual C++ 10 (VS2010) Express

Download and install the Windows 7 SDK.

Older versions

Some of the older version are no longer supported, further information is available at Obsolete Build Caveats and Tips [en-US] under the Windows SDK article.

Windows 8 SDK (Official)

Features that depend on this SDK include:

You can download the SDK from the Microsoft Download Center [web setup].

Windows 7 SDK

Features that depend on this SDK include:

You can download the SDK (v7.0 [web setup or ISO image] or unsupported v7.1 [web setup or ISO image]) from the Microsoft Download Center. Note that if you're running a 64 bit version of Windows you may require the "AMD" version of the SDK even if you have an Intel processor, and you may need to deselect the documentation component in the installer in order to avoid an installation error. (This was certainly the case for 64 bit Windows 7 on a late 2008 MacBook Pro.)

Warning: Due to a bug in Windows 7 SDK, if you get "SDKSETUP encountered an error: Expecting path %SystemRoot% to represent a valid system volume" error you may require to set environmental variable %windir% to something like "C:\Windows" instead of "%SystemRoot%".

Older SDKs

These are no longer supported, further information is available at Obsolete Build Caveats and Tips [en-US] under the Windows SDK article.

Troubleshooting

Help! I know I have the correct SDK, but configure.in's still failing!

Try the following things in order:

  1. Run the Windows SDK Configuration Tool (if available) and make sure the right SDK is selected.
  2. Restart the msys console.
  3. Delete your entire object directory and start over.