Difference between revisions of "Compilación en Linux"

From Asociación de Robótica UC3M
Jump to navigation Jump to search
(Let's go in style)
 
(11 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
Vamos a hacer un "Hola, Mundo!" en C! (buscando por Google, etc se puede encontrar el origen de este nombre). Decimos que Linux, pero este ejemplo es muy orientado a Debian, Ubuntu y Mint.
 
Vamos a hacer un "Hola, Mundo!" en C! (buscando por Google, etc se puede encontrar el origen de este nombre). Decimos que Linux, pero este ejemplo es muy orientado a Debian, Ubuntu y Mint.
  
Paso 1) Abrimos una [[Consola_de_Linux|consola]].
+
Paso 1) Abrimos una [[Consola_de_Linux|consola de Linux]].
  
Paso 2) Desde la consola, creamos un fichero:
+
Paso 2) Desde la consola, creamos un fichero (usaremos el editor de texto ''gedit''):
gedit main.c
+
<syntaxhighlight lang="bash">
 +
gedit main.c
 +
</syntaxhighlight>
  
Paso 3) Copiamos estas líneas al fichero:
+
Paso 3) Copiamos estas líneas al fichero (es código fuente c!!!):
  
#include <stdio>
+
<syntaxhighlight lang="c">
 +
#include <stdio.h>
  
void main() {
+
void main()
 +
{
 
     printf("Hola, Mundo!\n");
 
     printf("Hola, Mundo!\n");
}
+
}
 +
</syntaxhighlight>
  
 
Paso 4) Pulsamos CTRL+s para guardar y CTRL+q para salir.
 
Paso 4) Pulsamos CTRL+s para guardar y CTRL+q para salir.
Line 20: Line 25:
 
Paso 5) Ya de regreso en la terminal, instalamos el paquete básico de librerías estándar y compiladores:
 
Paso 5) Ya de regreso en la terminal, instalamos el paquete básico de librerías estándar y compiladores:
  
sudo apt-get install build-essential
+
<syntaxhighlight lang="bash">
 +
sudo apt-get install build-essential
 +
</syntaxhighlight>
  
 
Paso 6) Compilamos el programa que hemos escrito:
 
Paso 6) Compilamos el programa que hemos escrito:
  
gcc main.c
+
<syntaxhighlight lang="bash">
 +
gcc main.c
 +
</syntaxhighlight>
  
Paso 7) Por defecto, el nombre del ejecutable es '''a.out'''. Podemos ejecutar el programa:
+
Paso 7) Por defecto, el nombre del ''ejecutable'' (sinónimo de "programa") es '''a.out'''. Podemos ejecutar el programa:
  
./a.out
+
<syntaxhighlight lang="bash">
 +
./a.out
 +
</syntaxhighlight>
  
 
[nota] Ponemos '''./''' para indicarle al sistema operativo que el programa se encuentra en "esta" carpeta (se indica con el punto).
 
[nota] Ponemos '''./''' para indicarle al sistema operativo que el programa se encuentra en "esta" carpeta (se indica con el punto).
 +
 +
== ¡Tengo problemas! ¿Qué hago? ==
 +
 +
* Quizás te pueda ayudar nuestro apartado de [[Errores_frecuentes_en_la_compilación|errores frecuentes en la compilación (ASROB)]].
 +
 +
== ¿Ahora qué puedo hacer? ==
 +
 +
* Una forma sofisticada de compilar es mediante un Makefile, que puede realizar llamadas a ''gcc'' de forma eficiente y concurrente. Sin embargo, no deja de ser una solución no multiplataforma. Por ello te invitamos a que descubras CMake (véase [[Tutorial_CMake|el tutorial de CMake (ASROB)]]), una solución multiplataforma que genera Makefiles, proyectos para Windows, etc.
 +
 +
* Crea un programa más complejo y súbelo a un repositorio [[SVN]] o [[Git]]!

Latest revision as of 19:21, 5 January 2020

Tutorial 1: Hola, Mundo!

Vamos a hacer un "Hola, Mundo!" en C! (buscando por Google, etc se puede encontrar el origen de este nombre). Decimos que Linux, pero este ejemplo es muy orientado a Debian, Ubuntu y Mint.

Paso 1) Abrimos una consola de Linux.

Paso 2) Desde la consola, creamos un fichero (usaremos el editor de texto gedit):

gedit main.c

Paso 3) Copiamos estas líneas al fichero (es código fuente c!!!):

#include <stdio.h>

void main()
{
    printf("Hola, Mundo!\n");
}

Paso 4) Pulsamos CTRL+s para guardar y CTRL+q para salir.

Paso 5) Ya de regreso en la terminal, instalamos el paquete básico de librerías estándar y compiladores:

sudo apt-get install build-essential

Paso 6) Compilamos el programa que hemos escrito:

gcc main.c

Paso 7) Por defecto, el nombre del ejecutable (sinónimo de "programa") es a.out. Podemos ejecutar el programa:

./a.out

[nota] Ponemos ./ para indicarle al sistema operativo que el programa se encuentra en "esta" carpeta (se indica con el punto).

¡Tengo problemas! ¿Qué hago?

¿Ahora qué puedo hacer?

  • Una forma sofisticada de compilar es mediante un Makefile, que puede realizar llamadas a gcc de forma eficiente y concurrente. Sin embargo, no deja de ser una solución no multiplataforma. Por ello te invitamos a que descubras CMake (véase el tutorial de CMake (ASROB)), una solución multiplataforma que genera Makefiles, proyectos para Windows, etc.
  • Crea un programa más complejo y súbelo a un repositorio SVN o Git!