Cómo compilar un programa en C usando el compilador GNU (GCC)

Si escribes un programa nuevo, no hará nada antes de que lo compiles. Muchos programadores principiantes usan interfaces visuales como Microsoft Visual Studio para escribir y compilar su código, pero si te piden que uses una máquina Unix, no podrás acceder a ese software. GCC es un compilador para C, C++, Java, Fortran y otros códigos de programación, que puede ser usado en máquinas Unix y GNU/Linux. Se distribuye como software gratuito bajo licencia GNU General Public License. Es muy útil saber al menos cómo realizar una compilación básica usando este programa. En el presente artículo daremos por sentado que el lector tiene conocimientos básicos para usar Unix o GNU/Linux desde la línea de comandos. Nota al lector: hemos decidido escribir este artículo, porque lo consideramos valioso para los ingenieros de software que recién comienzan. Somos ingenieros informáticos, trabajamos mucho con Unix y haciendo códigos. Cuando iniciamos este tipo de trabajo, teníamos conocimientos solo en desarrollo de Windows y no estábamos familiarizados con las herramientas de Unix para compilar aplicaciones. Con suerte, el presente tutorial será de ayuda para otros estudiantes.

Pasos

  1. Abre una terminal en Unix o GNU/Linux, o una ventana de comandos (cmd.exe) en Microsoft Windows.
    • Para averiguar si tienes instalado el compilador GNU C/C++ en tu computadora:
    • Escribe (o copia y pega): gcc --version
      • Esto te dará el número de versión de tu compilador. Si la línea del comando no arroja un resultado, lo más probable es que gcc/g++ no esté instalado.
  2. Asegúrate de tener gcc/g++ instalado en tu sistema, consulta los manuales de usuario de Unix o GNU/Linux para saber cuál es el método de instalación apropiados. Si vas a usar Microsoft Windows, puedes buscar una guía en Google para instalar el compilador MinGW GNU C/C++ o leer el siguiente artículo: "Cómo instalar MinGW (Compilador Minimalista GNU C/C++) en Microsoft Windows".
  3. Crea un directorio de trabajo usando el siguiente comando:
    • Escribe (o copia y pega): mkdir CCPP<
  4. Transfórmalo en el directorio de trabajo:
    • Escribe (o copia y pega): cd CCPP
  5. Usa un editor de texto como Nano, Gedit, Vi, Bloc de notas (en Microsoft Windows).
  6. En el caso de Unix, GNU o Linux:
    • Escribe (o copia y pega): nano main.c
    • Escribe (o copia y pega): gedit main.c
    • Escribe (o copia y pega): vi main.c
  7. En el caso de Windows:
    • Escribe (o copia y pega): notepad main.c
    • Puedes usar el Bloc de Notas como editor de texto en Microsoft Windows.
  8. Introduce el siguiente código fuente:
    • Escribe (o copia y pega):include <stdio.h> include <stdlib.h> int main() { printf("Hello World\n"); return(0); }
  9. Una vez que hayas completado el paso anterior, guarda el archivo desde tu editor de texto como main.c
  10. Compila el archivo usando el siguiente comando:
    • Escribe (o copia y pega): gcc main.c -o HelloWorld
  11. Ejecuta ahora el programa usando alguno de los siguientes comandos. En el caso de Unix, GNU o Linux:
    • Escribe (o copia y pega): ./HelloWorld
  12. En el caso de Windows:
    • Escribe (o copia y pega): HelloWorld.exe
    • En Windows, una vez que el archivo "main.c" se haya compilado, por lo general pasará a tener la extensión ".exe".
  13. Para compilar varios archivos:
    • Escribe (o copia y pega): gcc -o outputfile file1.c file2.c file3.c
  14. Para compilar señalando más errores usando la etiqueta -Wall:
    • Escribe (o copia y pega): gcc -Wall -o outputfile file1.c
  15. Para compilar archivos sin realizar el enlazado (o sea, sin obtener cada archivo en código objeto, sin enlazarlo a los otros):
    • Escribe (o copia y pega): gcc -c file1.c file2.c file3.c
    • Después de este último paso, si deseas enlazarlos, escribe: gcc -o outputfile file1.o file2.o file3.o
  16. Corrige cualquier error que el compilador te haya reportado.
    • Vuelve a compilar el código si tuviste que realizar correcciones.
    • Ejecuta el programa.

Consejos

  • Usa el manual del programa para obtener información útil sobre la sintaxis de programación para usar gcc. Puedes escribir "man gcc" y acceder al material.
  • Puedes añadir banderas o flags a los comandos GCC para mayor optimización.
  • Una vez que estés acostumbrado usar GCC, puede ser una buena herramienta para acelerar el desarrollo de cualquier programa.
  • Puedes crear archivos "Makefile" para hacer más sencilla la compilación de programas de gran tamaño.
  • Si creas tu código con una bandera -g, permitirá que se generen datos para la corrección de bugs, o depuración del programa, que el software depurador correspondiente, GDB, podrá usar para mejorar el trabajo de corrección de bugs.
  • Cuando compiles un programa en C++, usa "g++" en los comandos de la misma forma en que habrías usado "gcc". Recuerda que los archivos C++ tienen la extensión ".cpp" en lugar de ".c!".
  • Si usas muchas optimizaciones para tu código, debes tomar en cuenta que al optimizar la velocidad puedes perder ventajas en tamaño o en precisión de las funciones del programa y viceversa.

Advertencias

  • Ya que GCC solo es un compilador para código, no puedes usarlo para escribir ni para modificar un programa. Para ello requerirás un editor de texto funcional para trabajar en las líneas de código; algunas opciones populares son Emacs, Gedit y Kwrite. Vi (o Vim) es el editor fundamental para muchos programadores. Viene instalado de fábrica en muchas computadoras Mac o Linux, y vale la pena aprender a manejarlo en combinación con una terminal si vas a usarlas con frecuencia.
  • La optimización "-ffast-math" podrá darte a veces un código más rápido, pero también lo hará más impredecible. Si tienes problemas al usar esta opción, deshabilítala.

Cosas que necesitarás

  • Computadora que pueda ejecutar Unix o GNU/Linux (Windows con Cygwin o MingGW instalados)
  • Conocimientos básicos de GNU/Linux y de cómo instalar aplicaciones en ese sistema operativo
  • Código para tu programa
  • Editor de texto
Información
Usuarios que están en este grupo no pueden dejar comentarios en la página