Foros de daboweb

MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación => Webmasters - Diseño Web - Programación - Diseño gráfico => Mensaje iniciado por: BuHo en 14 de Abril de 2004, 01:51:38 am

Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: BuHo en 14 de Abril de 2004, 01:51:38 am
Para programar en C bajo linux necesitamos dos programas muy básicos, el compilador, gcc,  y un editor de textos cualquiera. Para compilar vamos a usar gcc, pero para editar código podeis usar lo que querais, desde vim hasta gedit. Yo uso vim normalmente aunque todavía a un nivel muy básico, ya que es complejo, pero gvim es su correspondiente gráfico y es muy sencillo, además de traer coloreado de sintaxis.

Al principio vamos a crear solo codigos *.c pero ya llegaremos a crear bibliotecas. Para que se active el coloreado de sintaxis es necesario que el editor sepa que esta trabajando con un fichero de código en C, así que mejor que abrir un fichero nuevo, crearemos el archivo antes de empezar a trabajar con el:
Código: [Seleccionar]
touch holamundo.cY despues abrimos el editor (ya os digo que yo lo hare con gvim) y el archivo en cuestion:
Código: [Seleccionar]
gvim holamundo.c
Bien, nada más abrirlo, gvim estará preparado para recibir comandos, pero no para escribir código, así que pulsaremos la tecla "Insert" del teclado o la tecla "a", y veremos como abajo aparecen las letras INSERTAR. A partir de este momento, ya podemos empezar a introducir el código. Empezaremos con el clásico "Hola Mundo" porque no necesitamos nada más complicado (de momento).  Este es el código que teneis que meter.

Código: [Seleccionar]
#include <stdio.h>

int main() {

printf("Hola Mundo\n");

return 0;
}

Despues, guardamos el fichero y abrimos la consola, vamos a compilarlo.

Como ya dije usaríamos gcc. La sintaxis básica es:
Código: [Seleccionar]
gcc archivo.cEsto, si no hay errores, generaria un archivo de salida ejecutable llamado a.out, pero como lo que queremos es que salga un ejecutable con un nombre más asequible y comprensible usaremos lo siguiente:
Código: [Seleccionar]
gcc holamundo.c -o mundoEsto genera el archivo llamado "mundo" que podemos ejecutar asi:
Código: [Seleccionar]
./mundoY que, como muchos ya sabreis, imprime en pantalla la frase "Hola Mundo" y sale. En MS-DOS muchos vereis que es bueno poner un getch() al final del código para que se quede a la espera de que pulses una tecla antes de salir, ya que si no, el programa escribe hola mundo en una consola de ms-dos y la cierra, y como se ejecuta tan rapido, apenas lo veremos. En linux no hace falta, siempre tenemos visible la salida en consola y no se cerrará a no ser que nosotros lo hagamos.

No me quiero meter en el código ya que eso ya lo iremos viendo, hoy solo quería que vieseis que es muy fácil compilar bajo linux. Eso sí, no lo intenteis con el código que puso Leandros del hola mundo modificado ya que las bibliotecas conio.h y dos.h no están disponibles en linux, o al menos yo no las tengo.

Si teneis cualquier duda, problema, sugerencia, corrección, ya sabeis, yo paso por aqui todos los dias varias veces aunque no postee demasiado.
Título: Re: 1.- Compilacion Bajo Linux (gcc)
Publicado por: jirho en 14 de Abril de 2004, 04:36:45 pm
...muy bueno amigo, creo que deberiamos hacer un post con las diferencias entre Linux y Windows con respecto a C...ahora estoy aprovecahndo un rato libre y no es mucho...pongo el post y Si Buho, Leandros o Halo lo ven conveniente pues lo modifican y ya...por ahora solo pongo el post...
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: FatsGordon en 15 de Abril de 2004, 06:33:37 pm
En general, y salvo excepciones, lo mismo vale para Linux que para las distintas versiones de Unix.

Yo trabajo desde hace unos años sobre un HP-UX 10.20 y para compilar los archivos en C utilizo el gcc, aunque ahora por razones laborales estamos utilizando más los .ec que los .c (los .ec tienen SQL incluído en el código), y se compilan con el esql (de Informix), que es un compilador C pero con la diferencia que en lugar de usar el gcc utiliza el cc, que es el compilador por defecto del Unix (al menos del HP-UX) y que además parsea las sentencias SQL para ver que no tengan errores...

Una compilación típica en esql sería:

esql -Aa programa.ec -o programa

donde programa es el que finalmente ejecutaremos. Como resultado intermedio se obtiene... programa.c!!!!

O sea que es lo mismo, pero no es lo mismo (diría Alejandro Sanz)...
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: jirho en 16 de Abril de 2004, 03:48:23 pm
...si amigo, en general, para Unix y derivados es lo mismo, pero en windows la cosa cambia...bueno existe el DJGPP para windows que es el Rhide para Linux y ese si trabaja igual que en Linux...
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: BuHo en 16 de Abril de 2004, 05:44:43 pm
Y si lo que quiere la gente es un entorno de desarrollo gráfigo y bonito teneis el "anjuta". Y un debugger gráfico, el "ddd".
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: jirho en 18 de Abril de 2004, 12:31:07 am
...pues me has cijido abajo amigo...no los he visto...
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: Lector en 18 de Mayo de 2004, 10:40:41 pm
Citar
Si teneis cualquier duda, problema, sugerencia, corrección, ya sabeis, yo paso por aqui todos los dias varias veces aunque no postee demasiado.


Tú solito lo has dicho... yo no te obligue... que conste... :lol:  :lol:  :lol:  :lol:  :lol:  :lol:  :lol:  :lol:

Aca te va un problemita o mejor dicho un warning:

Después de dar la orden de compliar el archivo.c.:

...:8:2: warning: no newline at end of file

Después de gcc archivo.c -o archivo2
archivo2.c:7:2: warning: no newline at end of file



La traducción sería...:
advertencia:  ninguna nueva línea en el extremo del archivo

Pero... qué quiere decir, no ntendo.  :oops:  :oops:  :shock:  :wink:

Un saludo y gracias de antemano.
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: BuHo en 18 de Mayo de 2004, 11:05:27 pm
Pega o mandame el código con todos los espacios y tabulaciones. Vamos, igualito. Yo nunca tuve ese error... y mira que he tenido errores!!!!

Amigo, yo me lo busque con mucho gusto  :wink:
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: Lector en 18 de Mayo de 2004, 11:15:19 pm
Listo, mañana (-disculpame pero antes no puedo, lo de siempre... si no estudio... me muero\matan  :oops:  :lol: -) cuelgo todos los datos. Me parece que era con el "simple" hola mundo.

Voy a poner por las dudas.:

Versión del kernel.
      "       "  gcc.
      "       "  VIM.
      "       "  KWrite.  <-- me parece que voy a usra este, esta bueno. ya veré y les cuento.
      "       " Lector <-- 1.1.1 la más basica, es como los kernel, si es con todos los números impares es que es inestable o esta a prueba.   :lol:  :lol:  :lol:  :lol:

Y algo más que me parezca relevante.

Gracias y un saludo. :wink:

P.D.: Por estos lados se dice "sarna con gusto no pica".   :lol:  :lol:  :lol:  :lol:  :wink:
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: BuHo en 18 de Mayo de 2004, 11:33:21 pm
Cuales son las dudas? Saber la version actual de esos programas??? O la que uso yo???

Del vim 6.2.120 es la que uso
Gcc: 3.4.0 es la mas actual y la que uso, salio hace muy poquito

Sobre la version del kernel... saber el que tu tienes???

uname -r

Si te refieres a otra cosa aclaremelo.

Un saludo.
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: Lector en 19 de Mayo de 2004, 04:59:27 pm
Ja, jaa.... me explique mal, la duda que engo es sobre el warning que me aparece.

Los datos que iba a poner eran por si te servian para entender el "problema". Disculpa por ser confuso.  :oops:

Este es el error que marca, aunque el programa funcione bien.:

Código: [Seleccionar]

[lucas@localhost linux]$ gcc buho.c -o buho1
buho.c:8:2: warning: no newline at end of file



...y este es el codigo, que es el mismo que tú colgaste, yo sólo hice un copy<->paste....:  :oops:  :oops:  :oops: , lo juro, yo no fui... yo no fuiiiii...

Código: [Seleccionar]

#include <stdio.h>

int main() {

   printf("Hola Mundo\n");

   return 0;
}


Mañana o más tarde pongo las versiones de lo que dije antes, perdón, pero ni siquiera tuve tiempo para hace una verificacion de mis versiones y ahora no estoy en casa así que se me complica.

Un saludo y gracias de nuevo. :wink:
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: BuHo en 19 de Mayo de 2004, 06:57:48 pm
Me compila sin ningun warning amigo... no sé qué puede ser ese error...
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: ALP en 19 de Mayo de 2004, 08:51:49 pm
Lector... prueba esto:

Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: jirho en 21 de Mayo de 2004, 06:11:05 pm
...si, correcto ALP con eso se soluciona...esto pasa en Linux...siempre hay que dar un enter al final... :wink:
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: Lector en 26 de Mayo de 2004, 02:21:43 pm
Holaaa.....

Es verdad, dàndole un enter al final, compila sin problema.

Gracias y un saludo.  :wink:
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: BuHo en 26 de Mayo de 2004, 03:37:44 pm
Qué cosa..... :shock:
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: Lector en 26 de Mayo de 2004, 03:46:04 pm
:shock:  :shock:  :shock:  ...el Hola Mundo, el que puse arriba. :wink:
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: BuHo en 26 de Mayo de 2004, 03:51:53 pm
ya ya, pero yo lo compile igual que tu, sin espacio, y no me daba ningun warning.
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: jirho en 26 de Mayo de 2004, 09:32:33 pm
...eso es lo bueno...te llevas unas sorpresas..... :shock:  :wink: ....
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: Lector en 27 de Mayo de 2004, 10:06:11 pm
osea que y lo rompi, otra vez yo haciendo lios, jua, juaa.
Lo concreto es que le gregue un line más y compilo sin problema.

Un saludo y gracias. :wink:
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: Dabo en 27 de Mayo de 2004, 11:18:28 pm
como os lo pasais  :lol:  :lol:
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: carlos_xvt en 14 de Marzo de 2005, 10:52:11 pm
pregunta tota e inocente: no puedo compilar en linux un .c y ke de como salida un .exe (para win)???
Título: 1.- Compilacion Bajo Linux (gcc)
Publicado por: jirho en 14 de Marzo de 2005, 11:05:46 pm
...jeje...no hay pregunta tonta amigo, tonto seria el no preguntrla, y pues ya somos dos pero casi te aseguro que no se puede, manejan formas distintas, lo unico que se me ocurre seria crearlo en linux y renombrarlo nombre.exe... :D  :D  :D  :D  :D ...