C++ é compilado: o compilador transforma o .cpp num executável, e depois você roda o
executável.
Testar sem instalar nada
No Compiler Explorer, escolha C++, cole o código e abra
Add new... → Execution Only para ver a saída. Em Compiler options, use
-std=c++20.
Instalar
Linux (Debian/Ubuntu)
sudo apt install build-essential
g++ --version
O build-essential instala o GCC (gcc para C e g++ para C++). A versão do
apt pode não ser a mais recente; para uma mais nova, veja como
compilar o GCC a partir do código-fonte.
Windows
Instale o MSYS2 e, no terminal MSYS2 UCRT64, rode:
pacman -S mingw-w64-ucrt-x86_64-gcc
O pacote traz o gcc e o g++. Compile e rode no mesmo terminal MSYS2 UCRT64 (ou adicione C:\msys64\ucrt64\bin
ao PATH do Windows para usar no PowerShell). Se os acentos saírem trocados no
terminal do Windows, o problema é a codificação do terminal, não o programa.
Executar um arquivo
Exemplo básico: Olá, mundo!
Salve este programa como main.cpp:
#include <iostream>
int main() {
std::cout << "Olá, mundo! Olá, C++!\n";
return 0;
}
Compile e execute com os comandos de Compilar com G++ no Linux, mais abaixo. A saída será:
Olá, mundo! Olá, C++!
Calcular o IMC e mostrar a faixa
Substitua o conteúdo de main.cpp pelo programa abaixo. Cada exemplo é um
programa completo: compile um de cada vez.
O programa lê o peso em quilogramas e a altura em metros, calcula
IMC = peso / (altura * altura) e mostra a faixa para adultos de 20 a 59 anos.
Digite decimais com ponto, como 1.75, e pressione Enter após cada dado.
As faixas seguem o Ministério da Saúde.
O IMC é um indicador; este exemplo didático não faz um diagnóstico.
#include <cmath>
#include <iomanip>
#include <iostream>
#include <string_view>
int main() {
double weight;
double height;
std::cout << "Peso em kg (ex.: 70.5):\n";
if (!(std::cin >> weight) || !std::isfinite(weight) || weight <= 0) {
std::cerr << "Peso inválido: digite um número positivo.\n";
return 1;
}
std::cout << "Altura em metros (ex.: 1.75):\n";
if (!(std::cin >> height) || !std::isfinite(height) || height <= 0) {
std::cerr << "Altura inválida: digite um número positivo.\n";
return 1;
}
const double bmi = weight / (height * height);
if (!std::isfinite(bmi) || bmi <= 0) {
std::cerr << "Não foi possível calcular: confira os valores informados.\n";
return 1;
}
std::string_view category;
if (bmi < 18.5) {
category = "Baixo peso";
} else if (bmi < 25) {
category = "Peso adequado (eutrofia)";
} else if (bmi < 30) {
category = "Sobrepeso";
} else if (bmi < 35) {
category = "Obesidade grau I";
} else if (bmi < 40) {
category = "Obesidade grau II";
} else {
category = "Obesidade grau III";
}
std::cout << std::fixed << std::setprecision(2)
<< "IMC: " << bmi << " kg/m²\n"
<< "Faixa: " << category << '\n';
return 0;
}
Compilar com G++ no Linux
Abra o terminal na pasta em que salvou main.cpp e compile:
g++ -std=c++23 -Wall -Wextra -Wpedantic main.cpp -o main
g++ compila C++ e inclui a biblioteca padrão na etapa de ligação. main.cpp é
o arquivo de entrada e -o main define o nome do executável. Sem erros, a
compilação normalmente termina sem imprimir nada. -std=c++23 seleciona C++23;
use GCC 11 ou mais recente. Os exemplos também
funcionam com -std=c++20, usado nas lições.
Execute o arquivo gerado:
./main
O ./ indica que o executável está na pasta atual. No segundo exemplo, a
interação será:
Peso em kg (ex.: 70.5):
70
Altura em metros (ex.: 1.75):
1.75
IMC: 22.86 kg/m²
Faixa: Peso adequado (eutrofia)
70 e 1.75 são os dados que você digita; as outras linhas são a saída do
programa. std::cin >> lê os números e std::cout mostra o resultado.
double armazena valores decimais, std::isfinite rejeita valores não finitos,
e std::setprecision(2) com std::fixed exibe duas casas decimais.
Os testes if e else if escolhem a faixa usando o IMC calculado, antes do
arredondamento de exibição: abaixo de 18,5, baixo peso; de 18,5 até menos de 25,
peso adequado; de 25 até menos de 30, sobrepeso; de 30 até menos de 35,
obesidade grau I; de 35 até menos de 40, grau II; a partir de 40, grau III.
A leitura detecta letras, números grandes demais, zero e valores negativos.
Digite somente o número pedido: esse exemplo não valida toda a linha.
No Windows, o executável é main.exe. As opções -Wall -Wextra -Wpedantic
ativam avisos: leia-os antes de executar.
Quando o exemplo é só um trecho
Coloque as linhas dentro de int main() { ... }, inclua os cabeçalhos que ele usar
(<iostream>, <vector>, <string>...) e deixe classes e funções acima do
main.
Erros comuns
'cout' was not declared in this scope: faltou#include <iostream>ou o prefixostd::.- Usar
gccem vez deg++para C++: a compilação falha na hora de juntar a biblioteca padrão. - Recurso novo que não compila: confira se o comando tem
-std=c++20.