Cómo instalar y usar GCC en Ubuntu: Guía completa paso a paso

目次

1. Introducción

¿Qué es GCC?

GCC (GNU Compiler Collection) es un compilador de código abierto que permite compilar múltiples lenguajes de programación como C y C++. Se utiliza ampliamente como compilador estándar en las distribuciones de Linux.

Principales características de GCC:

  • Soporta múltiples lenguajes como C, C++, Fortran, Java, entre otros.
  • Es de código abierto y puede ser utilizado libremente por cualquiera.
  • Permite compilaciones rápidas y confiables.

Razones para usar GCC en Ubuntu

  1. Disponible como paquete estándar
    El repositorio de Ubuntu incluye GCC de forma predeterminada, lo que facilita su instalación.
  2. Amplia documentación y soporte
    Con usuarios en todo el mundo, existe abundante información sobre resolución de problemas y personalización.
  3. Uso gratuito
    Permite construir un entorno de desarrollo potente sin costos adicionales.
  4. Fácil personalización
    Se pueden gestionar múltiples versiones de GCC, adaptando el entorno a cada proyecto.

Resumen

En este artículo se presentó una visión general de GCC y las ventajas de usarlo en Ubuntu. GCC es un compilador potente, gratuito y compatible con varios lenguajes, además de ser muy fácil de instalar en entornos Ubuntu.

侍エンジニア塾

2. Preparación previa

Actualizar el sistema y verificar dependencias

Primero, actualiza la información de paquetes de Ubuntu a su última versión. Esto ayuda a evitar errores durante la instalación.

1. Actualizar el sistema

sudo apt update
sudo apt upgrade
  • sudo apt update: Actualiza la lista de paquetes a la última versión disponible.
  • sudo apt upgrade: Actualiza todos los paquetes instalados a la versión más reciente.

Notas importantes:

  • La actualización puede tardar algunos minutos.
  • Si aparece un mensaje indicando que se requiere reiniciar, reinicia el sistema.

Verificar herramientas de desarrollo

Para instalar GCC se necesitan herramientas y paquetes básicos de desarrollo. Ejecuta el siguiente comando para instalarlos previamente.

sudo apt install build-essential

Este comando instalará GCC y otras herramientas básicas de desarrollo.

Ejemplos de paquetes instalados:

  • gcc (compilador de C)
  • g++ (compilador de C++)
  • make (herramienta de construcción)

Verificar el estado de la instalación

Para confirmar los paquetes y la versión instalada, utiliza este comando:

gcc --version

Ejemplo de salida:

gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.

Si obtienes un resultado similar, significa que GCC se instaló correctamente.

Resumen de la preparación

Hasta aquí completaste los pasos previos necesarios para instalar GCC:

  • Actualizar y mejorar el sistema a su última versión.
  • Instalar los paquetes requeridos para el entorno.
  • Verificar la instalación y versión de GCC.

3. Procedimiento de instalación de GCC

Pasos básicos de instalación

En Ubuntu, GCC puede instalarse fácilmente desde los repositorios oficiales. Sigue los pasos a continuación.

  1. Instalar el paquete build-essential
sudo apt install build-essential

Este comando instala GCC, G++ y un conjunto de herramientas de desarrollo.

  1. Confirmar el progreso de la instalación
    Si aparece el mensaje “¿Desea continuar? (Y/n)”, escribe “Y” y presiona Enter.

Cómo verificar después de la instalación

Una vez completada la instalación, verifica la versión de GCC para confirmar que todo se haya instalado correctamente.

gcc --version

Ejemplo de salida:

gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.

Si ves la información de la versión, GCC está instalado correctamente.

Instalar herramientas y librerías adicionales

En algunos casos, GCC por sí solo no es suficiente. Se recomienda instalar los siguientes paquetes adicionales:

  1. Instalar G++ (compilador de C++)
sudo apt install g++
  1. Instalar herramientas de depuración
sudo apt install gdb
  1. Instalar páginas del manual
sudo apt install manpages-dev

Con esto podrás consultar la ayuda y los manuales de GCC cuando los necesites.

Qué hacer si la instalación falla

  1. Si no se encuentra el paquete
E: Unable to locate package build-essential

Solución: Actualiza la información de los repositorios.

sudo apt update
sudo apt upgrade
  1. Si ocurre un error de permisos
Permission denied

Solución: Ejecuta el comando con privilegios de administrador anteponiendo sudo.

Resumen del procedimiento de instalación

En esta sección vimos el procedimiento de instalación y verificación de GCC, y cómo añadir paquetes opcionales.

Puntos clave:

  • Instala fácilmente con sudo apt install build-essential.
  • Verifica el estado revisando la versión instalada.
  • Agrega G++, gdb y otros paquetes según sea necesario.

4. Uso básico de GCC

Crear y compilar un programa simple

  1. Crear un programa de ejemplo

Comencemos con un programa sencillo “Hello, World!”.

nano hello.c

Cuando se abra el editor, ingresa el siguiente código:

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

Para guardar, presiona Ctrl + X, confirma con Y y sal.

Compilar el programa

Ahora compila el programa usando GCC.

gcc hello.c -o hello

Explicación del comando:

  • gcc: El comando del compilador.
  • hello.c: El archivo fuente a compilar.
  • -o hello: Establece el nombre del ejecutable como “hello”.

Ejecutar el programa compilado

Ejecuta el binario generado con el siguiente comando:

./hello

Ejemplo de salida:

Hello, World!

Si ves este resultado, la compilación y la ejecución fueron exitosas.

Cómo actuar ante errores

  1. Errores por fallos en el código

Ejemplo de mensaje:

hello.c: In function ‘main’:
hello.c:3:5: error: expected ‘;’ before ‘return’
    return 0;

Solución:
El mensaje indica la línea problemática (p. ej., línea 3). Revisa y corrige el código.

  1. Error de compilación

Ejemplo de mensaje:

gcc: command not found

Solución:
GCC podría no estar instalado. Reinstálalo con:

sudo apt install build-essential
  1. Error en tiempo de ejecución

Ejemplo de mensaje:

bash: ./hello: Permission denied

Solución:
Si el archivo no tiene permisos de ejecución, asígnalos y vuelve a ejecutar:

chmod +x hello
./hello

Opciones de optimización

GCC permite mejorar el rendimiento usando opciones de optimización.

Ejemplo: establecer nivel de optimización

gcc -O2 hello.c -o hello
  • -O1: Optimización básica.
  • -O2: Optimización más agresiva.
  • -O3: Optimización máxima (prioriza velocidad).

Con esto puedes reducir el tiempo de ejecución o el tamaño del binario.

Resumen

En esta sección, creaste, compilaste y ejecutaste un programa con GCC.

Puntos clave:

  • Cómo crear y compilar un ejemplo básico.
  • Cómo interpretar y corregir errores frecuentes.
  • Cómo aplicar opciones de optimización para mejorar el rendimiento.

5. Gestión de múltiples versiones

Instalar múltiples versiones

En Ubuntu puedes instalar varias versiones de GCC en paralelo. Sigue estos pasos:

  1. Verificar las versiones disponibles
sudo apt search gcc-

Este comando lista las versiones de GCC en el repositorio.

Ejemplo de salida:

gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
  1. Instalar las versiones necesarias

Por ejemplo, instala GCC 9 y GCC 10:

sudo apt install gcc-9 gcc-10

Cuando termine la instalación, configura el método de cambio.

Cómo cambiar de versión

Con update-alternatives puedes alternar fácilmente entre versiones.

  1. Registrar versiones instaladas

Primero registra las versiones en update-alternatives:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100

En este ejemplo, GCC 10 tiene prioridad (100) como predeterminado.

  1. Seleccionar la versión a usar

Elige manualmente la versión con:

sudo update-alternatives --config gcc

Ejemplo de salida:

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-10  100       auto mode
  1            /usr/bin/gcc-9   90        manual mode
  2            /usr/bin/gcc-10  100       manual mode

Press <enter> to keep the current choice[*], or type selection number:

Introduce el número deseado y presiona Enter.

Usar una versión específica por proyecto

Si quieres usar una versión concreta por proyecto, puedes cambiar el enlace simbólico.

  1. Crear el enlace
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc

Este comando fija GCC 9 como predeterminado.

  1. Verificar la versión
gcc --version

Confirma que el cambio se haya aplicado.

Resumen

En esta sección instalaste múltiples versiones de GCC y aprendiste a alternarlas con update-alternatives.

Puntos clave:

  • Instalar las versiones necesarias y gestionarlas con update-alternatives.
  • Configurar una versión específica por proyecto cuando sea necesario.

6. Solución de problemas

Errores durante la instalación y cómo resolverlos

Error 1: No se encuentra el paquete

E: Unable to locate package build-essential

Causa:
La lista de paquetes no está actualizada o hay un problema de repositorios.

Solución:
Actualiza la información de repositorios e intenta de nuevo.

sudo apt update
sudo apt upgrade
sudo apt install build-essential

Medida adicional:

sudo add-apt-repository universe
sudo apt update

Con esto, el paquete podría quedar disponible.

Error 2: Error de permisos

Permission denied

Causa:
El comando no se ejecutó con privilegios de administrador.

Solución:
Ejecuta los comandos de instalación con sudo.

sudo apt install build-essential

Errores durante la compilación y cómo resolverlos

Error 1: No se encuentra el compilador

gcc: command not found

Causa:
GCC no está instalado o PATH no está configurado correctamente.

Solución:
Verifica o instala GCC.

sudo apt install gcc

Si ya está instalado, corrige el enlace simbólico:

sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc

Error 2: Error de enlace con librerías

undefined reference to 'main'

Causa:
No se definió la función main o hay un error de enlace.

Solución:
Asegúrate de que main esté definido y recompila con las opciones necesarias.

gcc -o output main.c -lm

Errores en tiempo de ejecución y cómo resolverlos

Error 1: Falta permiso de ejecución

bash: ./program: Permission denied

Causa:
El ejecutable no tiene permisos de ejecución.

Solución:
Asigna permisos y ejecuta de nuevo.

chmod +x program
./program

Error 2: Librerías faltantes

error while loading shared libraries: libXXX.so: cannot open shared object file: No such file or directory

Causa:
Falta una biblioteca compartida necesaria.

Solución:
Identifica la biblioteca requerida e instálala.

sudo apt install libXXX-dev

Errores al gestionar versiones y cómo resolverlos

Error: El cambio de versión no surte efecto

gcc --version

Si no aparece la versión seleccionada, revisa la configuración de update-alternatives.

Solución:

  1. Revisar las alternativas disponibles.
sudo update-alternatives --config gcc
  1. Elegir el número correcto.
  2. Actualizar el enlace simbólico si es necesario.
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc

Resumen

En esta sección abordamos problemas comunes al instalar y usar GCC, y sus soluciones prácticas.

Puntos clave:

  • Ante errores de instalación, actualiza repositorios o ajusta la configuración.
  • Ante errores de compilación, revisa el código y las opciones de enlace.
  • En tiempo de ejecución, verifica permisos y bibliotecas.
  • Para gestión de versiones, usa update-alternatives y enlaces simbólicos.

7. Preguntas frecuentes (FAQ)

¿Cómo instalo la versión más reciente de GCC?

Pregunta:
Quiero instalar la versión más reciente de GCC, pero el repositorio por defecto ofrece una versión antigua. ¿Qué puedo hacer?

Respuesta:
Agrega un PPA con versiones nuevas de GCC.

  1. Añadir el PPA:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
  1. Actualizar la lista de paquetes:
sudo apt update
  1. Instalar la versión reciente:
sudo apt install gcc-12
  1. Verificar la versión:
gcc --version

¿Cómo desinstalar GCC?

Pregunta:
Quiero desinstalar GCC. ¿Cómo lo hago?

Respuesta:
Ejecuta los siguientes comandos:

sudo apt remove gcc
sudo apt autoremove

Para eliminar herramientas relacionadas, añade:

sudo apt remove build-essential

¿Qué hacer si solo aparece una versión antigua en update-alternatives?

Pregunta:
Incluso con update-alternatives --config gcc solo puedo elegir versiones antiguas. ¿Cómo agrego una versión nueva?

Respuesta:
Instala la versión deseada y añádela manualmente a las alternativas.

  1. Instalar la versión necesaria.
sudo apt install gcc-12
  1. Añadirla a las alternativas.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
  1. Seleccionar la versión.
sudo update-alternatives --config gcc

¿Cómo resolver errores de dependencias?

Pregunta:
Durante la instalación de GCC aparecen errores de dependencias. ¿Cómo los soluciono?

Respuesta:
Asegúrate de que el sistema esté actualizado:

sudo apt update
sudo apt upgrade

Si persiste, repara dependencias:

sudo apt --fix-broken install

¿Cómo usar una versión específica de GCC por proyecto?

Pregunta:
Quiero usar versiones diferentes de GCC por proyecto. ¿Cómo lo configuro?

Respuesta:
Crea un enlace simbólico dentro del directorio del proyecto.

  1. Crear el enlace local a la versión deseada.
ln -s /usr/bin/gcc-9 ./gcc
  1. Usarlo al compilar localmente.
./gcc -o program program.c

¿Qué hacer si aparece “command not found”?

Pregunta:
Aunque instalé GCC, aparece gcc: command not found. ¿Qué hago?

Respuesta:
Primero verifica la instalación:

dpkg -l | grep gcc

Si no está instalado, vuelve a instalar:

sudo apt install gcc

Si continúa el problema, verifica el enlace simbólico:

ls -l /usr/bin/gcc

Si el enlace está roto, corrígelo:

sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc

Resumen

En esta sección recopilamos preguntas frecuentes sobre GCC y soluciones concretas.

Puntos clave:

  • Para versiones recientes, usa un PPA.
  • La desinstalación y la gestión de versiones se simplifican con update-alternatives.
  • Incluimos ejemplos de comandos para resolver problemas comunes.

8. Conclusión y próximos pasos

Repaso de los puntos clave

  1. Descripción general y rol de GCC
  • GCC es un compilador potente que soporta varios lenguajes como C y C++.
  • En Ubuntu, puede instalarse fácilmente desde los repositorios oficiales y es ideal para preparar el entorno de desarrollo.
  1. Instalación y preparación
  • Actualiza el sistema e instala build-essential.
  • Verifica versiones y resuelve dependencias para estabilizar el entorno.
  1. Uso básico
  • Cómo crear, compilar y ejecutar un programa de ejemplo.
  • Cómo manejar errores y aplicar opciones de optimización.
  1. Gestión y cambio entre múltiples versiones
  • Usa update-alternatives para alternar versiones según el proyecto.
  1. Solución de problemas y FAQ
  • Errores frecuentes en instalación/uso y sus soluciones paso a paso.

Recursos adicionales

Estos recursos te ayudarán a profundizar o ampliar tus conocimientos.

  1. Documentación oficial de Ubuntu
  1. Documentación oficial de GCC
  1. Guía de consola Linux
  • Linux Console con información de solución de problemas generales en Linux.
  1. Sitios de aprendizaje y foros

Próximos pasos

  1. Aplicar GCC al desarrollo real
  • Integra GCC en tus proyectos para desarrollar programas más avanzados.
  1. Ampliar con librerías
  • Instala bibliotecas adicionales para extender funcionalidades según las necesidades del proyecto.
  1. Aprender nuevos lenguajes y herramientas
  • Explora otros lenguajes y herramientas de construcción para seguir mejorando tus habilidades.
  1. Participar en la comunidad
  • Únete a foros y proyectos de código abierto para compartir conocimiento y practicar con casos reales.

Cierre

En este artículo recorrimos desde la instalación hasta el uso práctico de GCC en Ubuntu, incluyendo solución de problemas. Con estas pautas, incluso principiantes podrán configurar su entorno sin complicaciones.

Mensaje final:
Usa esta guía como referencia para aprovechar GCC en tus proyectos y disfruta del desarrollo. Si surgen dudas, consulta la sección de FAQ o los recursos adicionales.

En el próximo artículo abordaremos la sintaxis básica de C/C++ y técnicas de desarrollo más avanzadas. ¡No te pierdas las próximas actualizaciones!

Glosario (uso recomendado en español neutro)

  • Repositorio: colección de paquetes de software disponible para instalar.
  • Paquete: unidad instalable de software (programa, librería o herramienta).
  • Dependencias: paquetes requeridos por otro paquete para funcionar.
  • Enlace simbólico (symlink): puntero que redirige a otro archivo o ruta.
  • Depuración (debugging): proceso de identificar y corregir errores.
  • Optimización: ajuste del código para mejorar rendimiento/tamaño.
  • Tiempo de ejecución: fase en que un programa ya compilado se ejecuta.
侍エンジニア塾