↓Ir al contenido
Alemasone

Cómo instalar un compilador C y C++ en Windows, Linux y macOS

Aprende a instalar GCC con MSYS2 en Windows, build-essential en Linux y Xcode en macOS. Incluye comandos de compilación y configuración en VS Code.

7 min de lectura Actualizado el
Terminal con la compilación de un programa en C++ y el mensaje de éxito
En esta página
En Linux y macOS el compilador se instala con un comando. En Windows, hoy en día, la mejor opción es MSYS2, que te ofrece GCC a través de MinGW-w64 y lo actualiza automáticamente. El antiguo MinGW de SourceForge, ese que tiene el Installation Manager que aparece en tantas guías (incluso en la primera versión de esta), se quedó estancado hace años, solo genera programas de 32 bits y ya no debería usarse.

El compilador transforma el código fuente en un programa ejecutable. Para C y C++ los más usados son dos: GCC, disponible desde 1987 y presente en todas partes, y Clang, más moderno, con mensajes de error más claros y predeterminado en macOS. La última versión de GCC es la 16, lanzada en abril de 2026, que para C++ utiliza el estándar C++20 por defecto.

A continuación encontrarás la instalación para los tres sistemas, los comandos para compilar y la configuración de Visual Studio Code.

Windows: MSYS2 y MinGW-w64 #

MinGW-w64 es la versión de GCC que genera ejecutables nativos para Windows. MSYS2 es el entorno que lo distribuye y lo mantiene actualizado.

  1. Descarga el instalador desde el sitio oficial de MSYS2 e instálalo dejando la ruta predefinida C:\msys64.

  2. Al finalizar se abrirá una terminal de MSYS2. Actualiza los paquetes base:

    pacman -Syu
    

    Si la ventana se cierra durante la actualización, no te preocupes: ábrela de nuevo desde el menú Inicio (MSYS2 UCRT64) y repite el comando hasta que ya no haya nada más que actualizar.

  3. Instala el grupo de herramientas de compilación de 64 bits:

    pacman -S mingw-w64-ucrt-x86_64-toolchain
    

    Cuando te pregunte qué paquetes instalar, pulsa Enter para seleccionarlos todos y luego confirma con Y. Si también necesitas el depurador, ya viene incluido: gdbforma parte del grupo.

  4. Añade la carpeta de los compiladores al PATH de Windows para poder usarlos desde cualquier terminal. Busca Editar las variables de entorno del sistema en el menú Inicio (o ve a Configuración → Sistema → Acerca de → Configuración avanzada del sistema), pulsa Variables de entorno, selecciona Path entre las variables de usuario, luego Nueva → Crear variable y escribe:

    C:\msys64\ucrt64\bin
    
  5. Confirma con Aceptar en todas las ventanas, abre un nuevo Símbolo del sistema y comprueba:

    gcc --version
    g++ --version
    

Ventana de Variables de entorno de Windows con la entrada Path entre las variables de usuario
La entrada Path que hay que modificar se encuentra en el cuadro de variables de usuario

También hay caminos más cortos. w64devkit es un archivo único para descomprimir, sin gestor de paquetes: muy cómodo si lo usas de vez en cuando. Y si solo quieres aprender C en Windows, el Subsistema de Windows para Linux también te viene genial: instalas Ubuntu con wsl --install y sigues la parte de Linux que aparece abajo.

Linux #

En Debian, Ubuntu y sus derivadas, todo lo necesario está en un único paquete:

sudo apt update
sudo apt install build-essential gdb

Incluye GCC, G++, make y las librerías de desarrollo. En Fedora:

sudo dnf install gcc gcc-c++ make gdb

En Arch Linux:

sudo pacman -S base-devel gdb

Comprueba con gcc --version. No hace falta nada más: las rutas ya están configuradas.

macOS #

En Mac, el compilador por defecto es Clang, que viene con las herramientas de línea de comandos de Xcode. Las instalas con este comando, que abrirá una ventana de confirmación:

xcode-select --install

A partir de ahí, los comandos gcc y g++ existen, pero en realidad ejecutan Clang. Para aprender no cambia nada.

Si necesitas GCC específicamente, por ejemplo para un proyecto que lo requiera, puedes instalarlo con Homebrew:

brew install gcc

Los comandos se llamarán gcc-16 y g++-16, incluyendo el número de versión, para que no entren en conflicto con los del sistema.

Compilar desde la terminal #

Los comandos son los mismos en cualquier sitio, solo cambia el nombre del archivo generado.

Compilar un único archivo C:

gcc programma.c -o programma

Compilar C++, solicitando un estándar reciente y todos los avisos (warnings):

g++ -std=c++20 -Wall -Wextra programma.cpp -o programma

Ejecutar el resultado:

./programma

En Windows, desde el Símbolo del sistema, el ejecutable se llama programma.exe y se lanza escribiendo programma.

Terminal que compila un archivo C++ con g++ y ejecuta el resultado inmediatamente después
Compilación sin errores: no aparece ningún mensaje y el programa arranca

Opciones que debes conocer desde el principio:

OpciónQué hace
-Wall -WextraMuestra los avisos (warnings): detectan errores que el compilador aceptaría sin decir nada
-gIncluye la información de depuración, necesaria para usar el depurador
-O2Optimiza el código; debe usarse para la versión final, no mientras estás desarrollando
-std=c++20Establece el estándar del lenguaje, evitando sorpresas entre ordenadores distintos
Si tienes más de tres archivos, olvídate de compilar a mano. Escribe un Makefile o usa CMake. Recompilar todo cada vez que haces un cambio te hará perder tiempo y, tarde o temprano, olvidarás algún archivo y pasarás media hora buscando un error que no existe.

Configurar Visual Studio Code #

Visual Studio Code no tiene compilador propio: utiliza el que hayas instalado. Solo necesitas dos pasos.

  1. Instala la extensión C/C++ de Microsoft desde el panel de extensiones. Como alternativa tienes clangd, que es más rápido en el autocompletado y en las notificaciones de errores.

  2. Abre la carpeta del proyecto y crea un archivo fuente. Pulsa F5: la primera vez que lo ejecutes, el editor te preguntará qué compilador quieres usar y generará automáticamente los archivos tasks.json y launch.json en la subcarpeta .vscode.

Si el compilador no aparece en la lista, en Windows el culpable suele ser el PATH. Comprueba que gcc --version funcione en una nueva terminal; después, cierra y vuelve a abrir el editor por completo: solo lee las variables de entorno al iniciarse.

Visual Studio Code te pregunta qué compilador usar al iniciar la depuración por primera vez
En la primera ejecución, el editor enumera los compiladores que ha encontrado en el sistema

Para compilar sin el depurador, la terminal integrada (Ctrl + ò) acepta los mismos comandos que hemos visto antes.

Errores frecuentes #

gcc non è riconosciuto come comando en Windows: la carpeta bin no está en la variable PATH, o bien la terminal ya estaba abierta cuando la añadiste.

fatal error: iostream: No such file or directory: estás compilando un archivo C++ con gcc en lugar de usar g++.

Tienes dos versiones de GCC distintas: si todavía tienes la versión antigua de C:\MinGW\bin en el PATH, elimina esa línea; de lo contrario, Windows podría encontrar primero la versión vieja. where gcc te indica cuál se está utilizando.

undefined reference to ...: la compilación ha terminado correctamente, pero falta el enlace a una librería o a otro archivo fuente. Cuando hay más de un archivo, hay que indicarlos todos o utilizar un sistema de construcción (build system).

El ejecutable no funciona en otro ordenador con Windows: faltan las librerías de tiempo de ejecución (runtime). Se soluciona compilando con -static, que las incluye dentro del ejecutable.

Preguntas frecuentes #

¿MinGW y MSYS2 son lo mismo? #

No. MinGW-w64 es el conjunto de herramientas que permite a GCC generar programas para Windows; MSYS2 es el entorno que los distribuye, los actualiza y proporciona una terminal estilo Unix. Hoy en día se instala MSYS2 precisamente para obtener MinGW-w64 en su versión más actualizada.

¿GCC o Clang: cuál elegir? #

Para aprender, ambos sirven. Clang es el que viene por defecto en macOS y ofrece mensajes de error más claros, algo que ayuda mucho al principio. GCC es el estándar en Linux y lo encontrarás con más frecuencia en proyectos existentes. Muchos desarrolladores usan ambos: compilar con dos compiladores distintos puede revelar errores que uno solo dejaría pasar.

¿Puedo seguir usando el viejo MinGW de SourceForge? #

Funciona, pero no se actualiza desde hace años, solo genera programas de 32 bits y se ha quedado atrás respecto a los estándares modernos de C++. Si ya lo tienes instalado, desinstálalo, elimina C:\MinGW\bin del PATH y pásate a MSYS2.

¿Puedo compilar programas para Windows desde Linux? #

Sí, instalando la versión cruzada (cross-version) de MinGW-w64, disponible como paquete en las principales distribuciones. Se compila con x86_64-w64-mingw32-gcc y se obtiene un .exe funcional, lo cual es muy útil para distribuir un programa sin necesidad de tener un ordenador con Windows.

¿Es necesario Visual Studio en lugar de Visual Studio Code? #

Son cosas distintas. Visual Studio es un entorno de desarrollo completo (IDE) con su propio compilador de Microsoft (MSVC), mientras que Visual Studio Code es un editor que utiliza el compilador que tú le indiques. Para aprender C y C++, el editor con GCC es suficiente y mucho más ligero.

¿Cómo se instala un depurador? #

En Linux y con MSYS2, se instala gdb junto con el compilador, como hemos visto arriba. En macOS se utiliza lldb, que ya viene incluido en las herramientas de Xcode. En ambos casos, Visual Studio Code lo reconoce automáticamente cuando genera la configuración de inicio (launch configuration).

Sigue leyendo