instalar gedit Fedora y compilar con gcc primer programa en C

C en Fedora — instala gedit, compila con gcc y escribe tu primer programa

Instalar gedit en Fedora y compilar con gcc fue lo primero que tuve que resolver en IC2. Cuando nos dijeron que ibamos a programar en C usando gedit, lo primero que hice fue abrir la terminal de Fedora y escribir gedit. La respuesta fue inmediata: command not found. Nadie me había avisado de que había que instalarlo.

En este artículo te explico cómo instalar gedit en Fedora, cómo abrirlo correctamente usando & para no bloquear la terminal, y cómo compilar y ejecutar tu primer programa en C con gcc. Todo con capturas reales de mi Fedora en VirtualBox.

Si todavía no tienes Fedora instalada, primero sigue esta guía.

Paso 1 — Instalar gedit en Fedora

Abre la terminal de Fedora y ejecuta:

sudo dnf install gedit -y
terminal ejecutando sudo dnf install gedit

dnf es el gestor de paquetes de Fedora, el equivalente a la App Store pero para software de terminal. El -y acepta automáticamente la instalación sin pedirte confirmación. Tardará unos minutos dependiendo de tu conexión.

Cuando termine verifica que se instaló correctamente:

gedit --version

Paso 2 — Abrir gedit sin bloquear la terminal

Aquí está el truco que nadie te explica. Si abres gedit escribiendo simplemente:

gedit

La terminal se queda bloqueada, no puedes escribir más comandos mientras gedit está abierto. Tendrías que abrir otra terminal para compilar y ejecutar tu código o liberar la consola usando Ctrl+Z .

terminal bloqueada con gedit abierto sin &

La solución es el operador &, ejecuta el programa en segundo plano:

gedit &
terminal mostrando el PID de gedit y el prompt disponible

Con el & al final, gedit se abre pero la terminal sigue libre. Verás un número entre corchetes — ese es el PID (Process ID), el identificador del proceso de gedit. Ahora puedes seguir usando la terminal mientras gedit está abierto.

¿Qué es un proceso en segundo plano?

En Linux cada programa que ejecutas es un proceso. Normalmente los procesos corren en primer plano (foreground), ocupan la terminal hasta que terminan. Con & los mandas al segundo plano (background), siguen ejecutándose pero liberas la terminal.

gedit archivo.c &    # abre gedit con un archivo específico en segundo plano

Esto es especialmente útil en IC2 porque así puedes tener gedit abierto con tu código en una ventana y la terminal libre para compilar y ejecutar sin cambiar de ventana.

Paso 3 — Tu primer fichero en C

Crea la carpeta para tus prácticas de C:

mkdir -p ~/IC2/Practicas/P1_introduccion
cd ~/IC2/Practicas/P1_introduccion

Abre gedit con tu primer fichero:

gedit hola.c &
instalar gedit Fedora y compilar con gcc

Escribe este código en gedit:

#include <stdio.h>

int main() {
    printf("Hola, mundo\n");
    return 0;
}

Guarda con Ctrl + S. Este es el programa más simple posible en C, vamos a entender qué hace cada línea antes de compilarlo.

¿Qué significa cada línea?

  • #include <stdio.h>: le dice al preprocesador que incluya la biblioteca estándar de entrada/salida. Sin esta línea no puedes usar printf ni scanf. Es el equivalente al import de Python.
  • int main(): la función principal. Todo programa en C debe tener una función main, es el punto de entrada, lo primero que ejecuta el sistema.
  • printf("Hola, mundo\n"): imprime texto en la terminal. El \n es el salto de línea, sin él el siguiente prompt aparecería pegado al texto.
  • return 0: indica que el programa terminó correctamente. Un valor distinto de 0 indica error.

Paso 4 — El modelo de compilación en C

Antes de compilar, entiende qué pasa por dentro. En Python ejecutas directamente el archivo .py. En C el proceso tiene varias fases:

diagrama del modelo de compilación — fuente.c → preprocesador → compilador → enlazador → ejecutable
Imagen generada con IA (Google Gemini)

Preprocesador — procesa las líneas que empiezan por #. Elimina comentarios, incluye el contenido de los .h y sustituye los #define. Tu #include <stdio.h> se expande aquí, literalmente copia el contenido de stdio.h en tu fichero.

Compilador — convierte el código C en código máquina. Genera un fichero objeto .o, código binario pero no ejecutable todavía.

Enlazador (linker) — combina tu fichero objeto con las bibliotecas necesarias (como la de printf) y genera el ejecutable final.

Cuando usas gcc hola.c -o hola estás ejecutando las tres fases de una vez. Puedes verlas por separado:

gcc -E hola.c -o hola.i    # solo preprocesador → genera hola.i
gcc -c hola.c              # compilador → genera hola.o
gcc hola.o -o hola         # enlazador → genera el ejecutable

En la práctica siempre usarás el comando completo de una vez.

Paso 5 — Compilar con gcc

Vuelve a la terminal (que está libre gracias al &) y compila:

gcc hola.c -o hola

Si no aparece ningún mensaje de error, la compilación fue correcta. Si hay errores, gcc te dice exactamente en qué línea está el problema.

¿Qué significa cada parte del comando?

  • gcc — el compilador de C en Linux (GNU Compiler Collection)
  • hola.c — el fichero fuente que quieres compilar
  • -o hola — nombre del ejecutable que genera. Sin -o crea un fichero llamado a.out

Verifica que se creó el ejecutable:

ls -l

Fíjate en los permisos, el ejecutable tiene la x (ejecución) que el fichero .c no tiene.

Paso 6 — Ejecutar el programa

./hola
./hola mostrando "Hola, mundo" en la terminal

El ./ es obligatorio en Linux, le dice al sistema que el ejecutable está en la carpeta actual. Sin el ./ Linux busca el programa en las rutas del sistema y no lo encuentra.

El flujo de trabajo completo

Este es el ciclo que repetirás miles de veces en IC2:

gedit programa.c &     # 1. abres el editor en segundo plano
# ... escribes el código en gedit ...
# ... guardas con Ctrl+S ...
gcc programa.c -o programa    # 2. compilas
./programa                     # 3. ejecutas
# ... ves el resultado ...
# ... vuelves a gedit a corregir ...
# ... repites desde el paso 2 ...

Errores comunes al empezar

Error 1 — Olvidar el &:

gedit hola.c    # terminal bloqueada — no puedes compilar
gedit hola.c &  # correcto — terminal libre

Error 2 — Ejecutar sin ./:

hola      # bash: hola: command not found
./hola    # correcto

Error 3 — Olvidar return 0:

int main() {
    printf("Hola\n");
    // sin return 0 — warning del compilador
}

El programa funciona pero gcc da un warning. En IC2 los warnings son importantes, son señales de que algo no está del todo bien aunque compile.

Error 4 — Olvidar el ; al final de las instrucciones:

printf("Hola\n")    // error de compilación
printf("Hola\n");   // correcto

En C cada instrucción termina con ;. Es el error de sintaxis más común al principio.

Resumen y siguiente paso

Con esto tienes el entorno completo para programar en C en IC2:

sudo dnf install gedit -y    # instalar gedit
gedit archivo.c &            # abrir editor en segundo plano
gcc archivo.c -o archivo     # compilar
./archivo                    # ejecutar

En el siguiente artículo vemos los fundamentos del lenguaje C — tipos de datos, variables, operadores y las funciones printf y scanf para leer y escribir datos.


C on Fedora — install gedit, compile with gcc and write your first program

When I was told in IC2 we’d be programming in C using gedit, the first thing I did was open the Fedora terminal and type gedit. The response was immediate: command not found. Nobody warned me it needed to be installed.

This article covers installing gedit on Fedora, opening it correctly with & so you don’t block the terminal, and compiling and running your first C program with gcc.

If you don’t have Fedora installed yet, start here.

Step 1 — Install gedit on Fedora

sudo dnf install gedit -y

Verify the installation:

gedit --version

Step 2 — Open gedit without blocking the terminal

gedit        # WRONG — blocks the terminal
gedit &      # RIGHT — runs in background, terminal stays free

The & sends gedit to the background. You’ll see a number in brackets, that’s the PID (Process ID). Your terminal stays free for compiling and running.

Step 3 — Your first C file

mkdir -p ~/IC2/Labs/Lab1_intro
cd ~/IC2/Labs/Lab1_intro
gedit hello.c &

Write this in gedit:

#include <stdio.h>

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

Save with Ctrl + S.

What each line means:

  • #include <stdio.h>: includes the standard I/O library. Without this you can’t use printf or scanf. Like Python’s import.
  • int main(): the main function. Every C program needs one — it’s the entry point.
  • printf("Hello, world\n"): prints text. \n is the newline character.
  • return 0: signals the program ended successfully. Any other value means error.

Step 4 — The C compilation model

Python runs .py files directly. C needs multiple steps:

Preprocessor — handles # lines. Expands #include, replaces #define, removes comments.

Compiler — converts C code to machine code. Generates a .o object file.

Linker — combines your .o with libraries and generates the final executable.

gcc hola.c -o hola runs all three phases at once. See them separately:

gcc -E hello.c -o hello.i    # preprocessor only
gcc -c hello.c               # compiler only → hello.o
gcc hello.o -o hello         # linker only → executable

Step 5 — Compile with gcc

gcc hello.c -o hello
  • gcc — the C compiler on Linux
  • hello.c — your source file
  • -o hello — name for the executable. Without -o it creates a.out

Check the executable was created:

ls -l

Step 6 — Run the program

./hello

./ is mandatory in Linux — it tells the system the executable is in the current folder.

Complete workflow

gedit program.c &          # 1. open editor in background
# ... write code in gedit ...
# ... save with Ctrl+S ...
gcc program.c -o program   # 2. compile
./program                  # 3. run
# ... see result, go back to gedit ...

Common mistakes

Mistake 1 — Forgetting &

gedit hello.c    # terminal blocked
gedit hello.c &  # correct

Mistake 2 — Running without ./:

hello      # bash: hello: command not found
./hello    # correct

Mistake 3 — Missing return 0

Compiles but gives a warning. Warnings matter in IC2.

Mistake 4 — Missing ;:

printf("Hello\n")    // compile error
printf("Hello\n");   // correct

Every C instruction ends with ;.

Publicaciones Similares

3 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *