The Microsoft C++ toolset (MSVC) supports targeting a wide range of operating systems and CPU architectures from a single Windows-hosted development environment. Whether you are shipping a classic Win32 desktop application, a Universal Windows Platform (UWP) app, a cross-platform CMake library, an Android game, or firmware running on an ARM microcontroller, MSVC and Visual Studio provide the project templates, compiler toolchains, SDKs, and debuggers you need. This page summarizes every supported target platform and the Visual Studio editions that surface those capabilities.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/MicrosoftDocs/cpp-docs/llms.txt
Use this file to discover all available pages before exploring further.
Target Operating Systems and Architectures
The table below lists every target OS supported by Visual Studio’s C++ toolset, along with the CPU architectures available for each. Footnotes explain version-specific constraints.| Operating System | x86 | x64 | ARM64 |
|---|---|---|---|
| Windows 10 | ✓ | ✓ | ✓ |
| Windows 11 | ✓ | ✓ | ✓ |
| Windows Server 2016 | ✓ | ✓ | |
| Windows Server 2019 | ✓ | ✓ | |
| Windows Server 2022 | ✓ | ✓ | |
| Windows Server 2025 | ✓ | ✓ | |
| Android ¹ | ✓ | ✓ | ✓ |
| iOS ¹ | ✓ | ||
| Linux ² | ✓ | ✓ | ✓ |
ARM64 support for Windows and Android requires Visual Studio 2017 or later. Support for targeting Windows 7, 8, and 8.1 was removed starting with Visual Studio 2026 version 18.0; those targets require Visual Studio 2022 or earlier.
Windows Platform Deep Dive
- x86 / x64 (Desktop)
- ARM64 (Windows on ARM)
- UWP
The most common target for Windows applications. Visual Studio ships the full Windows SDK, enabling access to Win32 APIs, COM, DirectX, and more. Both 32-bit (x86) and 64-bit (x64) binaries are supported.Project types available:
- Console applications
- Windows desktop (Win32) applications
- MFC applications
- ATL COM components
- DLLs and static libraries
- Windows Services
Linux Targeting
Visual Studio can build and debug C++ code that runs on Linux without leaving the Windows IDE. Two connectivity modes are supported:Windows Subsystem for Linux (WSL)
WSL runs a full Linux kernel and distribution (Ubuntu, Debian, Fedora, and others) inside Windows 10/11. Visual Studio detects WSL installations automatically and can build and debug in WSL without any additional networking configuration. Ideal for local cross-platform development.
Remote Linux Machine (SSH)
Connect to any physical Linux machine, virtual machine, or cloud instance (Azure, AWS, GCP) via SSH. Visual Studio copies source files to the remote machine, invokes GCC or Clang remotely, pulls back headers for IntelliSense, and attaches the debugger over the same SSH tunnel.
Android and iOS
Mobile targeting requires the Mobile development with C++ workload. This installs the Android NDK, Android SDK, Apache Ant, and optionally an Android emulator image. Visual Studio provides project templates for Android Activity (C++), Android Static Library, and Android Dynamic Library.Visual Studio Editions
The C++ toolset is available across all Visual Studio editions, but certain features and workloads are edition-specific:| Feature | Community | Professional | Enterprise |
|---|---|---|---|
| Desktop development with C++ | ✓ | ✓ | ✓ |
| Linux development with C++ | ✓ | ✓ | ✓ |
| CMake support | ✓ | ✓ | ✓ |
| Mobile development with C++ | ✓ | ✓ | ✓ |
| Game development with C++ | ✓ | ✓ | ✓ |
| Code coverage tools | ✓ | ||
| Architecture dependency diagrams | ✓ | ||
| IntelliTest | ✓ |
Configuring the Target Platform in a Project
For MSBuild-based projects, set the target platform in Project > Properties > Configuration Properties > General > Platform Toolset and via the Configuration Manager (right-click the solution in Solution Explorer). For CMake projects, the target architecture is determined by the CMake preset orCMakeSettings.json configuration you select in the toolbar dropdown.
To configure targeting 64-bit from the command line, use vcvarsall.bat with the desired host/target architecture pair: