Bueno, a raíz del post de xXZeroXx en el cual afirmé que no se podía genera un ejecutable Window$ desde Linux. Tengo que decir que *afortunadamente* estaba equivocado.
El tema que comentaba xXZeroXx, me había dejado un "run, run" en la cabeza, así que cuando de casualidad vi que mi Debian GNU/Linux tenía un paquete llamado mingw, decidí instalarlo a ve qué pasaba...
XXXXXXXX [dot] com:/tmp$ aptitude search mingw p mingw32 - Minimalist GNU win32 (cross) compiler p mingw32-binutils - Minimalist GNU win32 (cross) binutils p mingw32-runtime - Minimalist GNU win32 (cross) runtime p newlib-mingw32 - newlib C library (win32) XXXXXXXX [dot] com:/tmp$ sudo aptitude install mingw32 Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Leyendo la información de estado extendido Inicializando el estado de los paquetes... Hecho Leyendo las descripciones de las tareas... Hecho Se instalarán los siguiente paquetes NUEVOS: mingw32 mingw32-binutils{a} mingw32-runtime{a} 0 paquetes actualizados, 3 nuevos instalados, 0 para eliminar y 0 sin actualizar. Necesito descargar 25,5MB de ficheros. Después de desempaquetar se usarán 119MB. ¿Quiere continuar? [Y/n/?]
Después de instalar el paquete y las dependencias, decidí ver los ejecutables que traía
XXXXXXXXX [dot] com:/tmp/foo$ dpkg -L mingw32 |grep /usr/bin/
/usr/bin/i586-mingw32msvc-g++
/usr/bin/i586-mingw32msvc-c++
/usr/bin/i586-mingw32msvc-gcov
/usr/bin/i586-mingw32msvc-gccbug
/usr/bin/i586-mingw32msvc-cpp
/usr/bin/i586-mingw32msvc-gcc
/usr/bin/i586-mingw32msvc-gcc-4.2.1-sjlj
/usr/bin/i586-mingw32msvc-cc
parece ser que mingw trae un montón de compiladores, decidí probar el "clásico" c++ con un hola mundo:
#include <iostream> int main() { std::cout << "Hola mundo!"; }
Un simple $ i586-mingw32msvc-g++ hola.cpp -o hola.exe
Bueno, se generó un ejecutable, así que use el comando file para ver si era válido:
XXXX@XXXXXX.com:/tmp/foo$ file hola.exe hola.exe: PE32 executable for MS Windows (console) Intel 80386 32-bit
Y voilá un ejecutable nativo de Windows :D
En fin, que esta es una de las veces en las que uno mismo se alegra de estar equivocado. Habría que mirar el comportamiento con otras librerías como SDL ó GTK. Instalar librerías de desarrollo en Window$ (de forma nativa, no cygwin) es un suplicio, y luego dicen que es fácil.. juas . Cuando tengas 5 librerías distintas empieza a buscar rutas de enlaces que te va a dar la risa.
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.
Eureka!
Probado con un "Hello world" desde mi Arch Linux y funciona a la perfección. Sólo que el comando que debo usar para compilar es "i486-mingw32-g++ hellowindows.cpp -o hellowindows.exe" al parecer el tuyo es i586, ni idea de que sea diferente.
Pasando al tema de SDL, al intentar compilar de errores sobre que no se encuentran las librerias de SDL (tira errores diciendo que SDL_XXX no se definió) además del "tipico" -lSDL ¿Que otra forma hay para incluir librerias especificando la ruta completa?
Saludos.
A falta de make file prueba
A falta de makefile prueba con g++ PARAMETROS_QUE_SEAN `sdl-config --libs`
Ojo, son comillas invertidas
Sin suerte :(
Lo siento, pero no me va, mismos errores que al compilar mediane -lSDL -lSDL_image etc...
Saludos.
Qué te muestra un
Qué te muestra un sdl-config --libs?
Muestra algo raro
Mi pregunta es, donde quedarón SDL_image, SDL_ttf, SDL_mixer, etc...
Saludos
No forman parte de SDL
No forman parte de SDL oficial, hay que indicarlos con -lSDL_image, -lSDL_ttf ... etc
Entiendo
Pensé que se encontarian en el mismo lugar que el SDL "común" bueno bueno, por ahora me voy que salgo al cine xD mañana hecharé una ojeada a eso de como enlazar librerias usando mingw a ver si tengo suerte...
Gracias por haber encontrado esto ;-)
Saludos.
Edito: He investigado un poco y al parecer la única forma es instalando librerias SDL para compilación cruzada.
Link y Leeme
Al menos lo qu ehe entendido es que tengo que bajar, compilar instalar en Linux esos ficheros y después, usar los scripts cómo si fuera un make o configure "normal".
Si es así, y a falta de tiempo, por ahora no me quiero enredaro más, y prefiero no trastear aún, que si no, no me quito hasta hacerlo funcionar y supongo que perdería tiempo que puedo aprovechar en la programación. Por ahora me quedo con la compilación que hago en las compus de mi escuela xD
GorristeR, gracias por la ayuda, y pues, eres libre de probar, si te funciona bien me avisas ;-)
Saludos y de nuevo gracias.