Skip to main content

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.

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.

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 Systemx86x64ARM64
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.
Footnote ¹ — Mobile platforms (Android & iOS): Install the Mobile development with C++ workload in the Visual Studio Installer. Building iOS code additionally requires a Mac computer with Xcode and the required Apple toolchain. Starting with Visual Studio 2026 (version 18.0), the Mobile development with C++ workload for iOS and Android targeting has been removed from the installer. Footnote ² — Linux: Install the Linux and embedded development with C++ workload. Visual Studio cross-compiles on Windows and then uses SSH to transfer and execute the binary on your target Linux machine or Windows Subsystem for Linux (WSL). The toolset compiles your executable on the target machine, so you can target any architecture the remote machine supports.

Windows Platform Deep Dive

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.
Linux prerequisites on the remote machine:
# Debian / Ubuntu
sudo apt-get install openssh-server g++ gdb make ninja-build rsync zip

# Fedora / RHEL
sudo dnf install openssh-server gcc-g++ gdb make ninja-build rsync zip

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.
iOS development requires a Mac running Xcode. Visual Studio on Windows acts as the editor and project manager; actual compilation and signing are performed on the Mac over a network connection using the vcremote agent.

Visual Studio Editions

The C++ toolset is available across all Visual Studio editions, but certain features and workloads are edition-specific:
FeatureCommunityProfessionalEnterprise
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
Visual Studio Community is free for individual developers, classroom learning, academic research, and open-source development. For commercial development in teams, Visual Studio Professional or Enterprise is required.

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 or CMakeSettings.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:
rem Host x64, target x64 (most common)
vcvarsall.bat x64

rem Host x64, cross-compile for ARM64
vcvarsall.bat x64_arm64

Build docs developers (and LLMs) love