1. **Instalación de MSYS2**
Descarga el instalador desde el sitio oficial (la ubicación predeterminada es C:\msys64). MSYS2 es una distribución para Windows que gestiona MinGW-w64/GCC/Clang.
2. **Instalación de la cadena de herramientas UCRT64 de 64 bits (recomendado)**
Abre la terminal **MSYS2 UCRT64** desde el menú de inicio y ejecuta:
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
Presiona Enter para continuar (instalará todos los 13 paquetes por defecto).
Esta es la recomendación oficial de la documentación de VS Code; esta cadena incluye mingw-w64-ucrt-x86_64-gcc/g++/gdb/....
Nota: MSYS2 ofrece múltiples entornos (
ucrt64/clang64, etc.). Para competencias, se recomienda **UCRT64 + GCC** por su estabilidad y buena compatibilidad. También puedes usar UCRT64 + Clang con:pacman -S mingw-w64-ucrt-x86_64-clang
3. **Añadir el compilador al PATH**
Agrega C:\msys64\ucrt64\bin a la variable PATH de tu usuario.
4. **Verificación** (en una terminal nueva):
g++ --version
gdb --version
Si ves los números de versión, todo está correcto. MSYS2 proporciona una versión reciente de GCC que soporta -std=c++23/gnu++23.
Instalación de Extensiones de VS Code
- C/C++ por Microsoft (IntelliSense/depuración) → Busca "C++" en el mercado de extensiones de VS Code.
- CPH – Competitive Programming Helper (pruebas de casos/evaluación automática/conexión con sitios de competición) → Busca "competitive programming helper".
- Competitive Companion (extensión de navegador para enviar problemas y ejemplos desde Codeforces/AtCoder a VS Code/CPH) → Después de instalar, haz clic en el "+" verde en el enunciado del problema.
Atajo de CPH: Ctrl + Alt + B ejecuta la evaluación de casos de prueba para el problema actual.
Configuración de VS Code para C++23 y MSYS2
Este paso solo afecta a las sugerencias inteligentes/navegación/depuración, no a la lógica de compilación y ejecución de CPH.
1. En VS Code: Ctrl+Shift+P → C/C++: Edit Configurations (UI), configura:
- Ruta del compilador:
C:\msys64\ucrt64\bin\g++.exe(oclang++.exe) - Estándar C++:
c++23
Se generará un archivo .vscode/c_cpp_properties.json similar a:
{
"configurations": [
{
"name": "MSYS2 UCRT64",
"compilerPath": "C:/msys64/ucrt64/bin/g++.exe",
"intelliSenseMode": "windows-gcc-x64",
"cppStandard": "c++23",
"includePath": ["${workspaceFolder}/**"]
}
],
"version": 4
}
Si usas Clang, cambia intelliSenseMode a windows-clang-x64.
2. **Opcional**: Configurar **MSYS2 UCRT64** como terminal integrado
{
"terminal.integrated.profiels.windows": {
"MSYS2 UCRT": {
"path": "cmd.exe",
"args": ["/c", "C:\\msys64\\msys2_shell.cmd -defterm -here -no-start -ucrt64"]
}
}
}
Configuración de CPH para usar compilador C++23 de MSYS2
CPH tiene capacidad para compilar y ejecutar casos de prueba con un solo clic. Debemos configurarlo para use el compilador g++/clang++ de MSYS2 y añadir parámetros como
-std=gnu++23.
1. Abre **Configuración** (Ctrl+,), busca **"cph"**.
Encuentra **"Cph > Language > Cpp > Command"** y cambia a la ruta absoluta de tu compilador:
C:\msys64\ucrt64\bin\g++.exe
2. En la configuración de C++ de CPH, añade estos parámetros de compilación:
-std=gnu++23 -O2 -pipe -Wall -Wextra -Wshadow
3. **Uso**:
- Usa Competitive Companion en el navegador para enviar problemas a VS Code
- En VS Code, CPH generará archivos y casos de prueba
- Presiona Ctrl+Alt+B para compilar y probar con los casos
Configuración alternativa de compilación/depuración
Para compilar y depurar directamente sin pasar por CPH, crea estos archivos:
.vscode/tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "Compilar con g++ (C++23, O2)",
"type": "shell",
"command": "C:/msys64/ucrt64/bin/g++.exe",
"args": [
"-std=gnu++23", "-O2", "-pipe", "-Wall", "-Wextra", "-Wshadow",
"${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe"
],
"group": { "kind": "build", "isDefault": true },
"problemMatcher": ["$gcc"]
}
]
}
.vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Depurar archivo actual (GDB)",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"cwd": "${fileDirname}",
"stopAtEntry": false,
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:/msys64/ucrt64/bin/gdb.exe",
"preLaunchTask": "Compilar con g++ (C++23, O2)"
}
]
}
Prueba Rápida
- Crea un archivo
solucion.cppcon un programa simple que lea varias líneas y las muestre - En el panel de CPH, añade dos casos de prueba o importa desde el problema usando Competitive Companion
- Presiona Ctrl+Alt+B y verifica que la compilación y evaluación funcionen correctamente
Problemas Comunes y Soluciones
- Error: g++ no encontrado: Verifica que
C:\msys64\ucrt64\binesté en PATH o usa la ruta completa en la configuración de CPH - ¿Qué entorno MSYS2 usar?: Para competencias, prioriza UCRT64 por su mayor modernidad y compatibilidad
- ¿Usar Clang?: Puedes instalar Clang con
mingw-w64-ucrt-x86_64-clangy cambiar el comando en CPH aclang++.exe - Estándares y opciones:
-std=c++23o-std=gnu++23son válidos;gnu++23permite extensiones GNU comunes en competencias - Importación automática de problemas: Instala la extensión Competitive Companion en tu navegador y haz clic en el "+" verde en las páginas de problemsa