Ejecutar en Linux codigos C hechos para windows

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
Avatar de Usuario
Rob_Zombie
Forista Nuevo
Forista Nuevo
Mensajes: 3
Registrado: Mié Jul 01, 2009 7:00 am

Ejecutar en Linux codigos C hechos para windows

Mensaje por Rob_Zombie » Mié Jul 01, 2009 11:38 pm

Hola, alguien conoce la forma de ejecutar por ejemplo este codido de C en Linux?

#include <stdio.h>

#include <stdlib.h>



int main()

{

int segundos;

int minutos;

int horas;

printf("diga cuantos segundos\n");

scanf("%i", &segundos);

printf("%i\n", minutos=segundos/60);

printf("%i\n", horas=minutos/60);

printf("en %i segundos entran %i minutos o sino %i horas", segundos, minutos, horas);

system("pause>nul");

}

Este codigo y otos muchos los intento compilar usando Geany, y Dev-C++ (que lo instale con el Wine) y no me permite ejecutarlos, (me parece obvio porque Linux no usa los bat de windows, por lo tanto no puede ejecutar el system("pause>nul") ), el problema es que los manuales pdf de C que tengo, tienen ejemplos basados en windows. Mi pregunta es si hay algun paquete, libreria, o algo que pueda usar para ver algo similar a la ventanita negra que aparecia cuando compilaba y ejecutaba un codigo asi en Dev-C++. Si conocen la forma que sea en Dev-C++, mejor, ya que con este estoy mas familiarizado. Muchas gracias por su tiempo. Gonzalo.
Ahh uso Linux Ubuntu 8.04 - Hardy Heron.
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: Ejecutar en Linux codigos C hechos para windows

Mensaje por akodo » Jue Jul 02, 2009 1:41 am

Lo ideal es que trataras de detectar el SO sobre el que estás trabajando, de forma que si trabajas sobre linux realizas una acción y si no realizas otra.
No sé si existirá alguna librería que tenga para sacar el nombre del SO sobre el que trabaja, pero otra opción es intentar averiguarlo tú mediante la función system.
Una vez detectado el SO lo que tendrías que hacer es guardarlo en una variable o en otro sitio para poder usarlo más tarde.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
Rob_Zombie
Forista Nuevo
Forista Nuevo
Mensajes: 3
Registrado: Mié Jul 01, 2009 7:00 am

Re: Ejecutar en Linux codigos C hechos para windows

Mensaje por Rob_Zombie » Jue Jul 02, 2009 2:35 am

Disculpen creo que no me exprese bien, lo que yo necesito es compilar ese codigo y algunos otros extraidos de un manual pdf de C, es decir ir aciendo los ejemplos del manual en un compilador de C que funcione bajo Linux (lo ago para aprender a usar el lenguaje), el problema creo que son las librerias que usa el manual. Muchas Gracias. Gonzalo.
Avatar de Usuario
black_magician
Forista Medio
Forista Medio
Mensajes: 349
Registrado: Mar Sep 11, 2007 7:00 am
Ubicación: el mas alla

Re: Ejecutar en Linux codigos C hechos para windows

Mensaje por black_magician » Jue Jul 02, 2009 4:08 am

Pues a mi me anduvo bien, el unico problema fue con la orden de system, pero si me hizo el calculo, de hecho no veo la razon para poner tal orden de "pause"
[url=http://bichissimo.blogspot.com]El Blogazo[/url]
Avatar de Usuario
ORBVS
Forista Nuevo
Forista Nuevo
Mensajes: 28
Registrado: Lun Nov 14, 2005 8:00 am
Contactar:

Re: Ejecutar en Linux codigos C hechos para windows

Mensaje por ORBVS » Jue Jul 02, 2009 6:02 pm

El mismo codigo, pero un poco mas corto, y con el "return 0" al fondo, la funcion main necesita regrasar un valor int si asi lo defines, si no quieres regresar algun valor al sistema, entonces define la funcion main como "void main()"

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int segundos, minutos, horas;

	printf("diga cuantos segundos: ");
	scanf("%i", &segundos);

	printf("minutos:%i\nhoras:%i\n", minutos=segundos/60, horas=minutos/60);
	printf("en %i segundos entran %i minutos o sino %i horas", segundos, minutos, horas);

	/* system("pause>nul"); */

	return 0;
}
Saludos!
Avatar de Usuario
xunilk
Forista Medio
Forista Medio
Mensajes: 181
Registrado: Sab Dic 06, 2008 8:00 am

Re: Ejecutar en Linux codigos C hechos para windows

Mensaje por xunilk » Jue Jul 02, 2009 6:37 pm

Copia ese código, agregando el return y eliminando la opción del system como te señalaron, en un archivo de texto con el nombre, por ejemplo, de primero.c.

Código: Seleccionar todo

#include <stdio.h>

#include <stdlib.h>

int main()

{

int segundos, minutos, horas;

printf("diga cuantos segundos\n");

scanf("%i", &segundos);

printf("%i\n", minutos=segundos/60);

printf("%i\n", horas=minutos/60);

printf("en %i segundos entran %i minutos o sino %i horas", segundos, minutos, horas);

return 0;

}

Si tienes el g++ instalado, lo compilas así:

g++ primero.c -o primero

y luego lo ejecutas así:

./primero.

Después lo analizas como funciona y lo mejoras a tu antojo
Avatar de Usuario
Rob_Zombie
Forista Nuevo
Forista Nuevo
Mensajes: 3
Registrado: Mié Jul 01, 2009 7:00 am

Re: Ejecutar en Linux codigos C hechos para windows

Mensaje por Rob_Zombie » Dom Jul 05, 2009 9:03 am

Bueno antes que nada les doy las gracias a todos los que respondieron, y les comento un poco mi situacion, soy usuariuo de Linux hace 2 o 3 meses, y mo tengo ni idea del uso de la Terminal. Creo que alguien que alla usado el Dev-C++ sabe que para ejecutar un codigo (o programa escrito en c) hay que apretar en "compilar y ejecutar", y luego aparecia la ventana del dos y hay estaba el "programa en si", yo busco la forma de ver los programas estos de ejemplos de la misma forma que lo hacia con el Dev-C++, pero en Linux, o al menos saber si hay forma de ejecutar estos codigos tal cual salen en el manual. Muchas Gracias... Gonzalo.
P.D.: Me recomiendan algun editor similar a Dev-C++ para Linux?
Avatar de Usuario
Orphen
Forista Medio
Forista Medio
Mensajes: 286
Registrado: Sab Mar 08, 2008 8:00 am
Ubicación: Colombia/Bogotá/home

Re: Ejecutar en Linux codigos C hechos para windows

Mensaje por Orphen » Dom Jul 05, 2009 9:31 am

yo cambie dev C++ por Gedit, el editor de textos de Gnome (si, el blog de notas) solo mira las opciones y verás que es muy útil, lo único es que no tiene debugger.

la forma de compilar más rápida y claro, de ver los errores de sintaxis en el código, es la terminal, de tal modo que:
cuando guardes un código, que no sea en una ubicación extraña ni tenga nombres como: "codigo numero 1.cpp", a cambio usa nombres cómo: "cod_1.cpp" evitando espacios
sabiendo la ubicación de tu archivo, por ejemplo: /home/user/programacion/
en la terminal llegas colocando:
cd /home/user/programacion/

ubicado en la carpeta, compilas así:

g++ cod_1.cpp -o cod

donde cod_1.cpp es el nombre del archivo y cod es el nombre del ejecutable

ahora, pendiente a la terminal (shell), pues puedes tener errores de programación, y estos se te informarán en la misma como lo hace dev c++, cuando tengas el ejecutable (que quiere decir que no tienes errores al compilar) para ejecutarlo realizas el comando:
./nombre_ejecutable

en nuestro caso: ./cod

mira estos 2 pantallazos que subí para que te des a la idea:

primero el editor de textos Gedit, me parece muy útil:

Imagen
ojo; el código que coloque es el que colocas a principio modificando un par de cosas, pero en esencia es el mismo (si usas cin y cout, no uses conio.h, usa solo using namespace std o cuando escribas cout por ejemplo pones: std cout)

y ahora el proceso en terminal, si sabes moverte entre carpetas, te será más fácil:

Imagen

ojo al fondo, coloque el archivo cpp y el ejecutable

espero te sea de ayuda.
Be Original, Be Free, Be GNU/Linux.
Iguazo Made in: Chibchombia
[url=http://gnu-rolo.blogspot.com/]Visite esta cochinada![/url]
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: Ejecutar en Linux codigos C hechos para windows

Mensaje por akodo » Dom Jul 05, 2009 12:35 pm

Tan sólo recordar que hay un post-it en el que se explica como compilar programas en C http://www.espaciolinux.com/foros-tema-t11627.html

Sólo hay que seguir unos pocos pasos, que después de hacerlos un par de veces se acaban haciendo mecánicos.

Con lo que te ha dicho Orphen y pasándote por el post-it deberías saber lo suficiente para compilar tus programas. Y no le tengas miedo al terminal que no come (sólo explota de vez en cuando) :wink:
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
ORBVS
Forista Nuevo
Forista Nuevo
Mensajes: 28
Registrado: Lun Nov 14, 2005 8:00 am
Contactar:

Re: Ejecutar en Linux codigos C hechos para windows

Mensaje por ORBVS » Mar Jul 07, 2009 12:17 am

Rob_Zombie escribió:Bueno antes que nada les doy las gracias a todos los que respondieron, y les comento un poco mi situacion, soy usuariuo de Linux hace 2 o 3 meses, y mo tengo ni idea del uso de la Terminal. Creo que alguien que alla usado el Dev-C++ sabe que para ejecutar un codigo (o programa escrito en c) hay que apretar en "compilar y ejecutar", y luego aparecia la ventana del dos y hay estaba el "programa en si", yo busco la forma de ver los programas estos de ejemplos de la misma forma que lo hacia con el Dev-C++, pero en Linux, o al menos saber si hay forma de ejecutar estos codigos tal cual salen en el manual. Muchas Gracias... Gonzalo.
P.D.: Me recomiendan algun editor similar a Dev-C++ para Linux?
Si quieres un sistema integrado yo recomiendo el KDevelop, require las librerias QT y KDE pero es facilisimo de usar, y para mi es lo mas cercano al Visual Studio de Microsoft. Pruebalo y no te arrepentiras.

En lo personal uso el EMACS, que es dificultoso pero es infinitamente adaptable a todas mis necesidades y me permite compilar desde el editor y si sabes programar en LISP puedes moldearlo a tu manera.
Avatar de Usuario
Destructor
Forista Legendario
Forista Legendario
Mensajes: 1672
Registrado: Lun Jul 05, 2004 7:00 am
Ubicación: México, Distrito Federal

Mensaje por Destructor » Mar Jul 07, 2009 4:55 am

Pues no sé que busques, pero el que mencionas geany, le das F5, compila y ejecuta, te abre una ventana de ejecución. Me parece que es lo que buscas.

Saludos
[url=http://www.espaciolinux.com/postt775.html]Reglamento del foro[/url] | [url=http://www.espaciolinux.com/foro20.html]Temas más preguntados[/url] | [url=http://www.mandriveros.com]Mi blog[/url] | Debian Tes
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje