Error en compilacion cruzada

Preguntas sobre cómo instalar bibliotecas, herramientas como entornos de programación e incluso sistemas operativos como GNU-Linux.

Error en compilacion cruzada

Notapor lacabra25 » Dom Feb 08, 2009 1:25 am

Hola, estoi intentando compilar un programa en C que usa SDL y SDL_image desde GNU/Linux para windows (compilacion cruzada), lo he intentado de tres formas y no he conseguido nada, intente instalando devc++ usando wine y me da error al linkar, intente instalar devc++ en virtualbox, tambien me dio error al linkar, el mismo, intente usar mingw32 para hacer compilacion cruzada como esplica un articulo de la web, y tampoco lo consegui dandome errores muy similares:

i586-mingw32msvc-gcc main.c archivos.c copyleft.c GNA_JHG.c graficos.c logo_gpl3.c -o Random_selection_competitors.exe -lmingw32 -lSDLmain -lSDL -lSDL_image
GNA_JHG.c: In function ‘Byte_Pseudoaleatorio’:
GNA_JHG.c:105: warning: comparison is always false due to limited range of data type
GNA_JHG.c:108: warning: comparison is always false due to limited range of data type
collect2: ld terminated with signal 11 [Fallo de segmentación]
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/SDLmain.lib(./Release_NOSTDIO/SDL_win32_main.obj):C:\Temp\src\SDL-1.:(.text[_main]+0x0): multiple definition of `_main'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libmingw32.a(main.o):(.text+0x0): first defined here
Warning: .drectve `/DEFAULTLIB:"MSVCRT" /DEFAULTLIB:"OLDNAMES" ' unrecognized
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/SDLmain.lib(./Release_NOSTDIO/SDL_win32_main.obj):C:\Temp\src\SDL-1.:(.text[_main]+0x55): undefined reference to `__alloca_probe'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/SDLmain.lib(./Release_NOSTDIO/SDL_win32_main.obj):C:\Temp\src\SDL-1.:(.text[_WinMain@16]+0x3b): undefined reference to `__alloca_probe'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/SDLmain.lib(./Release_NOSTDIO/SDL_win32_main.obj):C:\Temp\src\SDL-1.:(.text[_WinMain@16]+0x76): undefined reference to `__alloca_probe'

¿como puedo hacer correctamente la compilacion cruzada?, yo hace tiempo ya, usaba windows y compilaba con devc++ usando SDL, y no entiendo el por que no puedo compilar este programa.

Error de devc++:

C:\windows\profiles\jesus\Mis documentos\programa seleccion competidores\w\Makefile.win [Build Error] [Proyecto1_private.res] Error -1073741819
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor hugoruscitti » Dom Feb 08, 2009 1:53 pm

En la web tenemos un articulo que explica otra forma
de compilar programas para windows desde GNU/Linux,
¿has probado seguir esas instrucciones?:

http://www.losersjuegos.com.ar/referenc ... on_cruzada
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor lacabra25 » Dom Feb 08, 2009 5:41 pm

Si, los primeros codigos de errores que puse (los largos) son intentandolo de ese modo, los el ultimo error (el de una sola linea) es el de devc++ que solo lo puse una vez por como me da el mismo usando wine o virtualbox.
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor hugoruscitti » Dom Feb 08, 2009 6:05 pm

Es extraño, tendrías que probar con un ejemplo mas sencillo. Así
puedes reducir el campo el problema a algo mas concreto. Por
ejemplo, los errores de enlace (los que le siguen a "ld terminated...")
están relacionados con la definición de la función main. Esto
se tiene que resolver aplicando el consejo de la última parte
del artículo que cité, donde se habla de "en caso de errores":

http://www.losersjuegos.com.ar/referenc ... on_cruzada

también es muy importante que la función main tenga
la siguiente forma:

Código: Seleccionar todo
int main (int argc, char * argv [])


porque la biblioteca SDL sobre escribe esta definición con
una macro. Si usas una definición distinta como "void main(void)"
el programa simplemente no se generará...

mira el siguiente artículo para mas referencias sobre esto:

http://www.losersjuegos.com.ar/referenc ... lar_devcpp
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor lacabra25 » Lun Feb 09, 2009 6:57 pm

He probado con algo tan simple como el programa hola mundo, ni eso es capaz de compilar, no entiendo el motivo, pero ni eso, compilando el programa hola mundo da el siguiente error:

cannot find -lobjc
ld returned 1 exit status

Y el codigo es simplemente (el codigo del programa me refiero):
Código: Seleccionar todo
#include <stdio.h>

int main(void){
    printf("hola mundo\n");
    return 0;
}


Codigo mas sencillo, imposible.
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor lacabra25 » Mar Feb 10, 2009 4:58 pm

Hola, al final despues de estar probando una y otra vez he conseguido compilar el programa para windows, desintale de wine devc++, descargue de la pagina que indica en el articulo de la pagina losersjuegos que indica como instalar devc++ la ultima version de este, yo ya tenia instalada una de las dos versiones que me descargue, pero le di a reemplazar, la que no tube que reemplazar no es que no compilara, sino que nisiquiera detectaba el archivo correctamente, la desinstale, instale la que reemplaze y funciono perfectamente. Es algo raro, no entiendo por que ha pasado esto, supongo que sera que con el tiempo algun bit del archivo que tenia descargado se alteraria o algo, pero no tengo ni idea y no se si algun dia sabre el por que de este suceso tan estraño de que primero compile, al tiempo no compile y tras volverlo a instalar vuelva a compilar.

Gracias a todos.
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor Juanxo » Mar Feb 10, 2009 5:18 pm

Seguro que fue el bill gates, que no quería que hicieras algo que fuera sin ánimo de lucro en "su windows", y te jodió el ordenador xD. :lol:
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Notapor lacabra25 » Dom Mar 15, 2009 12:57 pm

Juanxo escribió:Seguro que fue el bill gates, que no quería que hicieras algo que fuera sin ánimo de lucro en "su windows", y te jodió el ordenador xD. :lol:


Seria una hipotesis a tener en cuenta si no fuera por que.... ¿sabra bill gay encender un ordenador al menos? jejejeje :D

Nota: esta broma la digo por que segun dicen bill en la universidad empezo a estudiar medicina pero nunca acabo la carrera.
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor Juanxo » Dom Mar 15, 2009 2:06 pm

jajajajajaja........Me he estado informando(wikipedia) acerca de su vida y parece que dejo Harvard(Derecho) para estudiar informatica.......Pero es que no dice nada de que tenga la carrera de informatica jajajajajaja

El William Henry(si es que con ese nombre....) Gates lo unico que hizo fue empezar su empresa, y cuando esta crecio y salio a bolsa, hacerse rico.

Estoy seguro que no programa desde........................(como mucho programa sus 21 Rolls Royce lol)

Sabeis lo de la conferencia en la que salio hablando su esposa y comento que a ella le encantaba el Iphone, pero que Billy no le dejaba comprarselo??? eso si que es cabezoneria.....
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)


Volver a Instalación de bibliotecas y herramientas

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado