PDA

Ver la versión completa : Duda sobre compiladores para la GP2X



estaño
28/03/2006, 21:42
Hola; probé hace un par de días el RealBasic y claro, la compilación que hace es para un linux x86, por lo que sólo obtengo una bonita pantalla negra en la ejecución de cualquier programa. ¿Existe algún módulo de desarrollo para este entorno?

Bueno, al leer por los foros, la mayor parte que veo es que se usa el gcc y las librerías del fénix. Otra pregunta es, ¿tiene el gcc alguna opción que permite la compilacion de cualquier programa para micros RISC? Si es así, qué opcion es. No he leído a fondo lo que pone la gente, pero simplemente no entiendo como es posible, si es que esto sucede en realidad, que un programa pueda compilarlo en mi ordenador sin mas y luego portarlo tal cual a la consola (sabiendo las diferencias de arquitectura que hay).

Y ya la última idea descabellada mia, ¿podría capturar el objeto que produce el realbasic y linkarlo finalmente con el gcc para que rulase en la consola?

Bueno, no desvario más que sino me echan del curro. Un saludo a tós :brindis:

Aiken
28/03/2006, 22:14
creo que es una combinacion de opciones de compilacion y de las propias librerias que linkes. Las librerias deben estar compiladas para ARM (el RISC). y ademas darle al compilador la opcion diciendole la arquitectura, no recuerdo exactametne pero era algo como -modeloprocesador o algo asi

Las librerias propias del compilador (vease libc,etc) tambien deben estar compiladas para ARM

En cuanto a lo del realbasic y el objeto, si el realbasic tiene la opcion de compilar para ARM, seguramente si que podrias usar el objeto.

Aiken

^MiSaTo^
28/03/2006, 22:25
Hola; probé hace un par de días el RealBasic y claro, la compilación que hace es para un linux x86, por lo que sólo obtengo una bonita pantalla negra en la ejecución de cualquier programa. ¿Existe algún módulo de desarrollo para este entorno?

Bueno, al leer por los foros, la mayor parte que veo es que se usa el gcc y las librerías del fénix. Otra pregunta es, ¿tiene el gcc alguna opción que permite la compilacion de cualquier programa para micros RISC? Si es así, qué opcion es. No he leído a fondo lo que pone la gente, pero simplemente no entiendo como es posible, si es que esto sucede en realidad, que un programa pueda compilarlo en mi ordenador sin mas y luego portarlo tal cual a la consola (sabiendo las diferencias de arquitectura que hay).

Y ya la última idea descabellada mia, ¿podría capturar el objeto que produce el realbasic y linkarlo finalmente con el gcc para que rulase en la consola?

Bueno, no desvario más que sino me echan del curro. Un saludo a tós :brindis:
Necesitas las librerias SDL compiladas para la consola, que te las puedes bajar del FTP público (de hecho creo que hay un rar con todo lo necesario) Además el compilador también debe ser "especial" para la consola (gcc para ARM por ejemplo). Lo encontrarás en el mismo sitio.
El fénix es otro "entorno" de programación, más bien es un game-maker, como el DIV2 studio. Digamos que es como un pseudo lenguaje de programación, que da resultados rápidos pero está bastante limitado en comparación con el C
Espero haberte aclarado las dudas :brindis:

Uncanny
28/03/2006, 23:47
Bueno, al leer por los foros, la mayor parte que veo es que se usa el gcc y las librerías del fénix. Otra pregunta es, ¿tiene el gcc alguna opción que permite la compilacion de cualquier programa para micros RISC? Si es así, qué opcion es. No he leído a fondo lo que pone la gente, pero simplemente no entiendo como es posible, si es que esto sucede en realidad, que un programa pueda compilarlo en mi ordenador sin mas y luego portarlo tal cual a la consola (sabiendo las diferencias de arquitectura que hay).Bueno, intentaré complementar algo más sin dar muchas explicaciones "técnicas" para ser un añadido más a las correctas respuestas que te han dado :)

A lo que te refieres de "generar algo en un sitio pero que se ejecute en otro completamente difente", sin ser este un código interpretado o bytecode sino compilado, es lo que se denomina compilación cruzada, y para ello se usa un "compilador cruzado", en concreto GCC es el que por aquí usamos, aunque en conjunto con otras herramientas proporcionadas por Binutils y algúna librería de C como la GNU Library C. Un compilador cruzado no es más que un compilador que ha sido "preparado" para que, en lugar de generar código máquina/objeto propio de la máquina y sistema operativo en la que se usa el compilador (lo que se denomina "build" machine, la maquina en la se hace se hace el trabajo de compilación/construcción, ej: i386-linux-gnu) genera un código máquina/objeto, enlazado y ejecutable SOLO en máquinas de una arquitectura concreta (ARM por ejemplo, en el caso de la GP2X) y distinta a la de la máquina en la que se ha compilado el programa (un PC, de arquitectura tipo x86) o, aun siendo de la misma arquitectura de procesador, para un sistema operativo diferente (lo que denomína "target" machine o máquina objetivo, ej: arm-linux).

No te lies mucho, solo debes entender que GCC, al ser un compilador libre y bastante extensible, está ideado para ser usado en multiples arquitecturas y sistemas operativos, tanto que se puede adaptar (se le pasan ciertos parametros build, host y target durante su propio proceso de construcción) para ser usado como un compilador cruzado para así poder desarrollar programas en tu PC de toda la vida en el que usas Windows o Linux pero con la intención de que se ejecuten tus programas en otra máquina completamente distinta a la que usas para desarrollar tus aplicaciones o juegos, desde un Mac pasando por un sistema embebido de arquitectura ARM en el que corre Linux como es la GP2X, ¿no es genial la compilación cruzada? :)

Respecto a RealBasic, en la GP2X me da que no, para empezar RealBasic no es software libre, y solo Real Software podría hacer que el compilador de su RAD generara código ejecutable en otra arquitectura extra al x86/PCC, además de que está ideado para usarse en entornos gráficos de escritorio como Windows, MacOS y sistemas basados en Linux, pero no en sistemas embebidos (al menos no aun). Si quieres un lenguaje sencillo de aprender y usar en la GP2X y no quieres recurrir a C/C++ tendrás que probar con Fenix como te ha sugerido ^MiSaTo^ o bien con Python, cuyos interpretes han sido portados a la GP2X, pero claro, no es nada de programación visual como RealBasic, solo se trata de teclear código :D

^MiSaTo^
29/03/2006, 01:41
Si quieres un lenguaje sencillo de aprender y usar en la GP2X y no quieres recurrir a C/C++ tendrás que probar con Fenix como te ha sugerido ^MiSaTo^ o bien con Python, cuyos interpretes han sido portados a la GP2X, pero claro, no es nada de programación visual como RealBasic, solo se trata de teclear código :D
Cierto, se me había olvidado el Python xDDDD
Joer Uncanny te explicas super bien, menos mal que has posteado detrás de mi, que he dado una explicación super chapucera xDDD
Saludos :brindis:

estaño
29/03/2006, 16:30
Gracias por las respuestas :) Yo vi que en mi viejo compilador de borland (hablamos ya del 3.1 de msdos) habia una opcion con la que podía quedarme con el objeto sin linkaje ninguno y por eso me dio por preguntar eso.

Lo que yo decia con el realbasic era una patochada (obviamente las librerías gráficas que use no existen en la GP2X ni creo que existan nunca, salvo que les dé por ahí), pero vamos, quería librarme de picar y picar código, que ya estoy un poco harto de hacer eso todo el dia :´( Veo que nada, estoy condenado al cochino código. Veré como me lo monto con el fenix. Estaremos en contacto por el foro :) Bye