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)
 
(4 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 (usaremos el editor de texto ''gedit''):
 
Paso 2) Desde la consola, creamos un fichero (usaremos el editor de texto ''gedit''):
Line 15: Line 15:
 
#include <stdio.h>
 
#include <stdio.h>
  
void main() {
+
void main()
 +
{
 
     printf("Hola, Mundo!\n");
 
     printf("Hola, Mundo!\n");
 
}
 
}
Line 34: Line 35:
 
</syntaxhighlight>
 
</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:
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 42: Line 43:
 
[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).
  
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.
+
== ¡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!