C++ Instalar no Windows e macOS

O Windows e o macOS não trazem um compilador C++ pronto para usar, mas instalar um é questão de alguns cliques e um comando. No Windows há três bons caminhos: o MSYS2 (com o mesmo g++ do Linux), o Visual Studio da Microsoft e o WSL (um Linux dentro do Windows). No macOS, as Command Line Tools da Apple trazem o clang++, e o Homebrew traz o GCC. Nesta aula você vai ver cada caminho, passo a passo, e compilar o primeiro programa.

Você vai aprender
  • Qual caminho escolher no Windows: MSYS2, Visual Studio ou WSL.
  • Instalar o g++ com o MSYS2 (pacman -S mingw-w64-ucrt-x86_64-gcc) e usá-lo fora do terminal do MSYS2.
  • Instalar o Visual Studio Community com a carga de trabalho "Desenvolvimento para desktop com C++" e escolher a versão do C++.
  • Instalar o WSL e seguir a aula do Linux.
  • No macOS: xcode-select --install (o clang da Apple) e brew install gcc.
  • Compilar e rodar o mesmo programa nos três sistemas.
Esta aula é ilustrativa

A máquina do guia é um Linux, então as telas e saídas desta página não foram produzidas nela: elas seguem os passos oficiais do MSYS2, da Microsoft, da Apple e do Homebrew (conferidos em outubro de 2026), mas números de versão, nomes de botões e mensagens podem variar um pouco no seu computador. Por isso as saídas aparecem em caixas de arquivo, e não no terminal da Ana. Os comandos de compilação, esses sim, são os mesmos de todo o guia.


Antes de tudo: o terminal

O guia compila os programas pelo terminal (a janela de texto onde você digita comandos), porque assim você vê exatamente o que acontece. Cada sistema tem o seu:

SistemaTerminalComo abrir
WindowsTerminal do Windows (com PowerShell) ou o terminal do MSYS2Menu Iniciar → digite "Terminal" (ou "MSYS2 UCRT64")
macOSTerminalCmd+Espaço → digite "Terminal"

Windows

Qual caminho escolher?

CaminhoO que você ganhaTamanhoBom para
1. MSYS2 (g++ do MinGW-w64)O mesmo g++ do Linux e do guia, com as mesmas opções e mensagens. Gera programas .exe normais do Windows.Algumas centenas de MBSeguir o guia com o VS Code ou outro editor. É o caminho recomendado.
2. Visual Studio CommunityO compilador da Microsoft (MSVC) e um ambiente completo, com depurador visual. Gratuito para estudantes, uso pessoal e equipes pequenas.Vários GBQuem quer um "tudo em um" ou vai trabalhar com programas e jogos para Windows (a Unreal Engine usa o Visual Studio).
3. WSLUm Ubuntu de verdade dentro do Windows: os comandos do guia funcionam igualzinho, inclusive make e gdb.Alguns GBQuem quer o ambiente exatamente igual ao do guia, ou vai programar para servidores Linux.

Não precisa escolher um só: muita gente tem o Visual Studio e o MSYS2 (ou o WSL) no mesmo computador.

Caminho 1: MSYS2, passo a passo

O MSYS2 é um pequeno "mundo Linux" para Windows: um terminal e um gerenciador de pacotes, o pacman (o mesmo do Arch Linux), de onde você instala o MinGW-w64, o GCC adaptado para gerar programas do Windows.

  1. Entre em msys2.org e baixe o instalador (um arquivo como msys2-x86_64-20260927.exe; a data no nome muda). É preciso Windows 10 ou 11, de 64 bits.
  2. Rode o instalador e aceite a pasta sugerida, C:\msys64. Clique em Avançar até o fim e depois em Concluir.
  3. Abre-se um terminal chamado MSYS2 UCRT64 (se não abrir, procure por ele no menu Iniciar). UCRT64 é o "ambiente" recomendado: programas de 64 bits, usando a biblioteca moderna do Windows (a Universal C Runtime).
  4. Nesse terminal, instale o g++:
    pacman -S mingw-w64-ucrt-x86_64-gcc
    O pacman mostra a lista de pacotes e pergunta :: Proceed with installation? [Y/n] ("continuar com a instalação?"). Tecle Enter.
  5. Confira:
    $ g++ --version
    g++.exe (Rev6, Built by MSYS2 project) 16.2.0
    Copyright (C) 2026 Free Software Foundation, Inc.
    ...
pacman
O gerenciador de pacotes do MSYS2.
-S
Sync: baixar e instalar.
mingw-w64-ucrt-x86_64-gcc
O nome do pacote: o GCC (gcc) do MinGW-w64 (mingw-w64), para o ambiente UCRT64 (ucrt), em processadores de 64 bits (x86_64). Ele traz o gcc e o g++.

O MSYS2 costuma ter a versão mais nova do GCC (em outubro de 2026, a 16.2). Mais tarde, para as aulas de Make e GDB, instale o kit completo: pacman -S mingw-w64-ucrt-x86_64-toolchain. Para atualizar tudo: pacman -Syu.

Usar o g++ fora do terminal do MSYS2

O g++ funciona dentro do terminal UCRT64. Para usá-lo também no PowerShell, no Terminal do Windows e no VS Code, acrescente a pasta dele ao PATH (a lista de pastas onde o Windows procura programas):

  1. Menu Iniciar → digite variáveis de ambiente → "Editar as variáveis de ambiente para sua conta".
  2. Selecione Path → Editar → Novo → digite C:\msys64\ucrt64\bin → OK em todas as janelas.
  3. Feche e abra de novo o terminal (o PATH só é lido quando o terminal abre) e confira com g++ --version.

Compilar no Windows

O comando é o mesmo do guia. A diferença é que o executável ganha a extensão .exe sozinho, e, no PowerShell, você roda o programa com .\ em vez de ./:

PS C:\Users\Ana\cpp> g++ -std=c++23 -Wall -Wextra ola.cpp -o ola
PS C:\Users\Ana\cpp> .\ola.exe
Olá, mundo!

Repare que o GCC 16 do MSYS2 usa o C++20 quando você não passa -std (o g++ 15 do guia usa o C++17). Com o -std=c++23 do comando padrão, os dois se comportam igual (aula Versões do C++).

Caminho 2: Visual Studio Community

O Visual Studio (não confunda com o VS Code, que é só um editor: aula Editores e IDEs) é o ambiente completo da Microsoft. A edição Community é gratuita para estudantes, uso pessoal, projetos de código aberto e equipes pequenas.

  1. Baixe o instalador em visualstudio.microsoft.com (Visual Studio Community) e rode-o.
  2. Na tela Cargas de trabalho, marque Desenvolvimento para desktop com C++. Ela traz o compilador MSVC, as bibliotecas do Windows, o depurador e o CMake. Não precisa marcar mais nada.
  3. Clique em Instalar. São vários gigabytes: pode demorar.
  4. Abra o Visual Studio → Criar um projeto → Aplicativo de Console (o de C++) → dê um nome → Criar. O projeto já vem com um "Hello World".
  5. Para compilar e rodar: Ctrl+F5 (Iniciar Sem Depuração). Uma janela de console abre com a saída e espera você teclar algo antes de fechar.

A versão do C++ no Visual Studio: projetos novos no Visual Studio 2026 já usam o C++20. Para o std::println e o resto do C++23, abra Projeto → Propriedades → C/C++ → Linguagem → Padrão de Linguagem C++ e escolha a opção mais recente (a que termina em /std:c++latest). Sem projeto (compilando direto no terminal), o compilador cl da Microsoft usa o C++14 se você não pedir outro.

O compilador da Microsoft também funciona no terminal: abra o Developer PowerShell for VS (instalado junto, no menu Iniciar) e use o comando cl. As opções têm outra forma:

cl /std:c++latest /EHsc /W4 ola.cpp
.\ola.exe
cl
O compilador da Microsoft (de compile and link, compilar e ligar).
/std:c++latest
A versão do C++: a mais nova que ele conhece. É o -std=c++23 do g++.
/EHsc
Liga o tratamento de exceções do jeito padrão do C++. Sem ele, o cl dá um aviso ao usar o <iostream>.
/W4
Nível 4 de avisos: o equivalente aproximado do -Wall -Wextra.
ola.cpp
O arquivo. O executável sai com o mesmo nome: ola.exe.

As mensagens de erro do MSVC são diferentes das do g++ e do Clang (têm códigos como C2143), mas dizem a mesma coisa. O guia mostra as do g++; quando uma não fizer sentido, procure o código no site da Microsoft.

Caminho 3: WSL, um Linux dentro do Windows

O WSL (Windows Subsystem for Linux, "subsistema Windows para Linux") roda um Linux de verdade ao lado do Windows, sem máquina virtual para configurar. Com ele, tudo o que o guia mostra no terminal funciona igual.

  1. Abra o Terminal (ou PowerShell) como administrador: clique com o botão direito no menu Iniciar → "Terminal (Administrador)".
  2. Digite:
    wsl --install
    Esse comando instala o WSL e o Ubuntu. Reinicie o computador quando ele pedir.
  3. Depois de reiniciar, abra o Ubuntu no menu Iniciar. Na primeira vez, ele pede um nome de usuário e uma senha para o Linux (não precisam ser os do Windows).
  4. Pronto: você está num terminal Ubuntu. Siga a aula Instalar no Linux: sudo apt update e sudo apt install build-essential.

Os arquivos do Windows aparecem dentro do Linux em /mnt/c/ (o disco C:). Mas, para compilar mais rápido, guarde os seus programas na pasta pessoal do Linux (~/cpp). O VS Code abre essa pasta direto com a extensão WSL (aula Editores e IDEs).


macOS

No Mac, o compilador "oficial" é o Clang da Apple, que vem nas Command Line Tools (as "ferramentas de linha de comando" do Xcode). Você não precisa instalar o Xcode inteiro, que é enorme: as ferramentas bastam.

1. Command Line Tools: xcode-select --install

  1. Abra o Terminal e digite:
    xcode-select --install
  2. Uma janela pergunta se você quer instalar as ferramentas de linha de comando. Clique em Instalar e aceite a licença. O download leva alguns minutos.
  3. Confira:
    % clang++ --version
    Apple clang version 17.0.0 (clang-1700.3.19.1)
    Target: arm64-apple-darwin25.0.0
    Thread model: posix
    InstalledDir: /Library/Developer/CommandLineTools/usr/bin

O arm64 na linha Target indica um Mac com chip Apple (M1, M2, M3…); num Mac antigo, com Intel, aparece x86_64. O % no começo da linha é o prompt do Terminal do macOS (o shell zsh), no papel do $ do Linux.

No Mac, o g++ é o Clang disfarçado

As Command Line Tools também instalam um comando chamado g++, mas ele é só um atalho para o Clang da Apple: g++ --version responde Apple clang version …. Para o guia, isso não é problema: as opções principais são as mesmas. Só não estranhe se as mensagens de erro no seu Mac se parecerem mais com as do editor do guia (que também usa o Clang) do que com as do terminal da Ana.

Compile e rode exatamente como no Linux:

% clang++ -std=c++23 -Wall -Wextra ola.cpp -o ola
% ./ola
Olá, mundo!

2. Opcional: o GCC pelo Homebrew

Se você quiser o mesmo compilador do guia (o GCC), instale-o pelo Homebrew, o gerenciador de pacotes mais usado no Mac:

  1. Instale o Homebrew, se ainda não tiver, com o comando que está na página brew.sh (copie de lá; ele começa com /bin/bash -c "$(curl -fsSL …)"). No fim, o instalador mostra dois ou três comandos para colar no Terminal: cole-os, eles colocam o brew no PATH.
  2. Instale o GCC:
    brew install gcc
  3. O Homebrew não ocupa o nome g++ (que é o Clang da Apple): o GCC vem com o número da versão no nome. Em outubro de 2026, a versão do Homebrew é a 16.2:
    % g++-16 --version
    g++-16 (Homebrew GCC 16.2.0) 16.2.0
    ...
    % g++-16 -std=c++23 -Wall -Wextra ola.cpp -o ola
    % ./ola
    Olá, mundo!

Nos comandos do guia, troque g++ por g++-16 (ou pelo número que o seu Homebrew instalou). Para atualizar: brew upgrade gcc.


Testando: o mesmo programa nos três sistemas

Seja qual for o caminho, o teste é o mesmo: o ola.cpp da aula Instalar no Linux e, em seguida, o teste do C++23 com std::println. Os comandos lado a lado:

Sistema e caminhoCompilarRodar
Linux, WSLg++ -std=c++23 -Wall -Wextra ola.cpp -o ola./ola
Windows, MSYS2 (terminal UCRT64)g++ -std=c++23 -Wall -Wextra ola.cpp -o ola./ola (ou ./ola.exe)
Windows, MSYS2 (PowerShell)g++ -std=c++23 -Wall -Wextra ola.cpp -o ola.\ola.exe
Windows, Visual StudioCtrl+F5, ou cl /std:c++latest /EHsc /W4 ola.cpp(abre sozinho) ou .\ola.exe
macOS, Command Line Toolsclang++ -std=c++23 -Wall -Wextra ola.cpp -o ola./ola
macOS, Homebrewg++-16 -std=c++23 -Wall -Wextra ola.cpp -o ola./ola

Um detalhe importante: o executável de um sistema não roda no outro. O ola.exe do Windows não abre no Mac, e o ola do Linux não abre no Windows. O código-fonte é o mesmo; o programa precisa ser compilado em cada sistema (a aula Como o C++ Vira Programa explica por quê).

Enquanto a instalação não termina, rode o programa abaixo no editor do guia. Ele usa o pré-processador (aula O Pré-processador) para descobrir para qual sistema foi compilado: cada compilador define um nome diferente (_WIN32 no Windows, __APPLE__ no Mac, __linux__ no Linux), e o #if escolhe a linha certa antes mesmo da compilação. Compile o mesmo arquivo no seu computador depois e compare.

Experimente: rode e veja o que o editor do guia responde. Ele não é Windows, nem Mac, nem Linux: o programa roda dentro do navegador, num formato chamado WebAssembly (WASI). No terminal da Ana, com o g++, o mesmo programa mostra Compilado para: Linux.

#include <iostream>

int main() {
#if defined(_WIN32)
    std::cout << "Compilado para: Windows\n";
#elif defined(__APPLE__)
    std::cout << "Compilado para: macOS\n";
#elif defined(__linux__)
    std::cout << "Compilado para: Linux\n";
#elif defined(__wasi__)
    std::cout << "Compilado para: WebAssembly (o editor do guia)\n";
#else
    std::cout << "Compilado para: outro sistema\n";
#endif
}
$ g++ -std=c++23 -Wall -Wextra sistema.cpp -o sistema
$ ./sistema
Compilado para: Linux

Quando dá errado

As mensagens abaixo são as que aparecem em português nos sistemas configurados em português; o texto exato pode variar com a versão (ilustrativo).

Windows: O termo 'g++' não é reconhecido como nome de cmdlet, função, arquivo de script ou programa operável

O que significa: o PowerShell não achou o g++. Ou ele não foi instalado, ou a pasta C:\msys64\ucrt64\bin não está no PATH, ou o terminal foi aberto antes de você mudar o PATH.

Como consertar: confira se g++ --version funciona no terminal MSYS2 UCRT64. Se funciona lá, o problema é o PATH: refaça os passos de "Usar o g++ fora do terminal do MSYS2" e abra um terminal novo. Atenção: se você instalou pelo terminal "MSYS2 MSYS" (e não o UCRT64), o pacote foi para outro lugar; use o UCRT64.

Windows: o programa mostra Olá, mundo! em vez de Olá, mundo!

O que significa: o programa escreveu o á corretamente, no formato UTF-8 (dois bytes), mas o console do Windows interpretou esses bytes numa codificação antiga, e cada byte virou um caractere estranho. O terminal do MSYS2 não tem esse problema; o PowerShell e o Prompt de Comando antigos, às vezes, têm.

Como consertar: use o Terminal do Windows (que é UTF-8), ou digite chcp 65001 antes de rodar o programa (troca o console para UTF-8). A aula Acentos e UTF-8 explica em detalhes.

Windows: cannot open output file ola.exe: Permission denied

O que significa: "não foi possível abrir o arquivo de saída ola.exe: permissão negada". No Windows, um .exe que está rodando fica "trancado": o ligador não consegue escrever a versão nova por cima. Também acontece quando o antivírus está examinando o arquivo recém-criado.

Como consertar: feche o programa que ainda está aberto (uma janela de console esquecida, por exemplo) e compile de novo. Se for o antivírus, espere alguns segundos.

macOS: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun

O que significa: as ferramentas de linha de comando não estão instaladas, ou foram desativadas por uma atualização grande do macOS (acontece com frequência depois de mudar de versão do sistema).

Como consertar: rode xcode-select --install de novo e clique em Instalar.

macOS: instalei o GCC pelo Homebrew, mas g++ --version ainda diz Apple clang

O que significa: é o esperado. O Homebrew instala o GCC com o número da versão no nome, para não esconder o g++ da Apple, de que outros programas dependem.

Como consertar: use g++-16 (confira o número com ls $(brew --prefix)/bin/g++-*).


Referência

CaminhoInstalarCompiladorConferir
Windows, MSYS2msys2.org + pacman -S mingw-w64-ucrt-x86_64-gccg++ (GCC)g++ --version
Windows, Visual StudioInstalador + "Desenvolvimento para desktop com C++"cl (MSVC)cl (sem nada) no Developer PowerShell
Windows, WSLwsl --install + sudo apt install build-essentialg++ (GCC, no Ubuntu)g++ --version
macOS, Command Line Toolsxcode-select --installclang++ (Apple Clang)clang++ --version
macOS, Homebrewbrew install gccg++-16 (GCC)g++-16 --version

Exercícios

1. O pacote do MSYS2

Complete o comando que instala o g++ no ambiente UCRT64 do MSYS2:

pacman -S

2. As ferramentas da Apple

Complete o comando que instala as Command Line Tools no macOS:

xcode-select

3. No Visual Studio Installer, qual carga de trabalho você marca para programar em C++?

4. No Mac, a Ana digitou g++ --version e apareceu Apple clang version …. O que isso quer dizer?

5. A Ana compilou o ola.cpp no Windows e mandou o ola.exe para um amigo com Mac. O que acontece?

Missão final: pronto para o Nível 1

Missão: a Ana escolheu o Windows com o MSYS2. Complete o programa para ele mostrar as duas linhas abaixo, cada uma com um std::println (troque os ???):

Sistema: Windows
Compilador: g++ do MSYS2
#include <print>

int main() {
    std::println("Sistema: ???");
    std::println("Compilador: ???");
}
#include <print>

int main() {
    std::println("Sistema: Windows");
    std::println("Compilador: g++ do MSYS2");
}

Resumo

  • Windows, recomendado: MSYS2 + pacman -S mingw-w64-ucrt-x86_64-gcc, no terminal UCRT64; para usar no PowerShell e no VS Code, coloque C:\msys64\ucrt64\bin no PATH.
  • Windows, tudo em um: Visual Studio Community com "Desenvolvimento para desktop com C++"; para o C++23, escolha /std:c++latest nas propriedades do projeto.
  • Windows, igual ao guia: wsl --install, e depois a aula do Linux.
  • macOS: xcode-select --install traz o clang++ (e um g++ que é o Clang); brew install gcc traz o GCC de verdade como g++-16.
  • O comando de compilação é o mesmo em todo lugar; o executável de um sistema não roda no outro.
  • Próximo passo: escolher onde escrever o código, em Editores e IDEs.