User Tag List

Página 1 de 3 123 ÚltimoÚltimo
Resultados 1 al 15 de 31

Tema: Ayuda con Linux para SDK

  1. #1

    Fecha de ingreso
    Apr 2006
    Mensajes
    1,021
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2
    Agradecer Thanks Received 
    10
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts

    Ayuda con Linux para SDK

    Buenos días,

    hasta ahora estaba progrmando con el SDK oficial en Windows, pero me interesaría poder programar en el portatil, en el cual tengo instalado Ubuntu. He estado buscando información y he encontrado bastante, pero me he quedado trabado en un punto, estaba siguiendo esta magnifica explicación de D_Skywalk (gracias ).

    El tema es que no quiero programar con Kdevelopment si no con codeblocks, me he bajado e instalado el codeblocks, pero no tengo muy claro como crear un proyecto para GP2X.

    Alguien me puede inspirar un poco? Sip, soy bastante nulo en el uso de Linux y cuando lo usaba era Red hat 6, así que os podéis hacer una idea. He compilado algo con GCC directamente, pero no sé como linkar las SDL del toolchain de Uncanny que es el que me he bajado.

    Ante todo muchas gracias y perdonad las molestias.

    Un saludo.

  2. #2

    Fecha de ingreso
    Mar 2006
    Ubicación
    Frankfurt
    Mensajes
    1,072
    Mencionado
    5 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    30
    Agradecer Thanks Received 
    242
    Thanked in
    Agradecido 105 veces en [ARG:2 UNDEFINED] posts
    Primero sugeriría definir una variable de entorno con la ruta en la que tengas instalado el toolchain. Eso se puede hacer editando el fichero .bashrc que tendrás en tu cuenta y añadiendo algo similar a lo siguiente:

    Código:
    export GP2XDEV="/opt/uncanny/gp2xdev"
    Después de esto te será posible usar $GP2XDEV para referirte a la ruta. Para compilar enlazando con SDL, tienes que utilizar una línea de comandos parecida a ésta:

    Código:
    $GP2XDEV/bin/gp2x-gcc fichero.c -o fichero_salida -I$GP2XDEV/include -L$GP2XDEV/lib -lsdl -static
    Con -I (i mayúscula) le indicas a gcc en qué ruta debe buscar los ficheros de cabecera y con -L la ruta donde tiene que buscar las librerías. Cualquier librería adicional se puede incluir con -l (ele minúscula) en el ejemplo que te puse, SDL.

    Con -static estamos enlazando de forma estática, es decir, añadiendo el código de las librerías al ejecutable. Esto hace que el ejecutable crezca de tamaño, pero así nos ahorramos el tener que distribuir las librerías de enlace dinámico para la GP2X.
    :wq

  3. #3

    Fecha de ingreso
    Apr 2006
    Mensajes
    1,021
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2
    Agradecer Thanks Received 
    10
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Muchas gracias Jcom, pero lo que estoy intentando es crear una plantilla en codeblocks en la cual estén linkadas las librerías. Ya he visto como hacerlo, pero de nuevo más dudas.

    El problema es que a la hora de linkar las librerías tengo una con extensión .a y otra con extensión.so.

    No estoy muy puesto en tema de librerías dinámicas y estáticas, entiendo que la .so es dinámica, por lo que creo que debería linkar las .a, pero no estoy seguro, a ver si consigo investigar un poco más.

    Muchas gracias y un saludo.

  4. #4

    Fecha de ingreso
    Mar 2006
    Ubicación
    Frankfurt
    Mensajes
    1,072
    Mencionado
    5 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    30
    Agradecer Thanks Received 
    242
    Thanked in
    Agradecido 105 veces en [ARG:2 UNDEFINED] posts
    Tienes, que perdonarme, había entendido que querías compilar sin usar ningún entorno. No conozco codeblocks, así que ahí no puedo ayudarte.

    En cuanto a las librerías estás en lo cierto, las "*.so" son las dinámicas y las "*.a" las estáticas. Por lo menos al usar -l (ele minúscula) con gcc no tienes que especificar la extensión, se usan unas u otras automáticamente según añadas "-static" o no en la línea de comandos.
    :wq

  5. #5

    Fecha de ingreso
    Apr 2006
    Mensajes
    1,021
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2
    Agradecer Thanks Received 
    10
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Perfecto, entonces lo único que tengo que hacer es crear el template con las librerías, ¿que es mejor para la GP2X? ¿estáticas o dinámicas?

    Si no me equivoco el sdk oficial compila con las librerías estáticas, pero supongo que al venir la GP2x con las librerías sería mejor dinámicas, no?

    Muchas gracias por las molestias que te estas tomando jcom, te debo unas .

  6. #6

    Fecha de ingreso
    Mar 2006
    Ubicación
    Frankfurt
    Mensajes
    1,072
    Mencionado
    5 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    30
    Agradecer Thanks Received 
    242
    Thanked in
    Agradecido 105 veces en [ARG:2 UNDEFINED] posts
    Usando el SDK oficial se podría usar compilación dinámica sin problemas, creo yo. Otra cosa es si usas Open2X u otro SDK con librerías que no se incluyen de serie en la GP2X, que para evitar el engorro de tener que distribuir esas librerías no te queda otra solución que usar compilación estática.

    Parece que la mayoría de la gente usa compilación estática.
    :wq

  7. #7

    Fecha de ingreso
    Apr 2006
    Mensajes
    1,021
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2
    Agradecer Thanks Received 
    10
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por jcom Ver mensaje
    Usando el SDK oficial se podría usar compilación dinámica sin problemas, creo yo. Otra cosa es si usas Open2X u otro SDK con librerías que no se incluyen de serie en la GP2X, que para evitar el engorro de tener que distribuir esas librerías no te queda otra solución que usar compilación estática.

    Parece que la mayoría de la gente usa compilación estática.
    Perfecto, pues nada a ver si puedo y pruebo un poco, porque tiene buena pinta el codeblocks, ya me he creado el template.

    Gracias y un saludo.

  8. #8

    Fecha de ingreso
    Apr 2006
    Mensajes
    1,021
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2
    Agradecer Thanks Received 
    10
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Pues nop, no consigo compilar.

    He hecho el linkado de las librerías, pero al hacer el include no las encontraba.
    Al final he sustituido el include por esto:

    #include </home/paco/Desktop/Proyectos Programación/SDK/Linux/gp2xdev/lib/libSDL.a>

    con esto no se queja de que no encuentra la librería, pero se llena todo de errores dentro de la librería y no funciona nada.
    Ejemplo:

    Compiling: main.cpp
    In file included from /home/paco/Desktop/Proyectos Programaci\u00f3n/Proyectos/Prueba/main.cpp:9:
    /home/paco/Desktop/Proyectos Programaci\u00f3n/SDK/Linux/gp2xdev/lib/libSDL.a:2: error: \u2018`\u2019 par\u00e1sito en el programa
    En el archivo inclu\u00eddo de /home/paco/Desktop/Proyectos Programaci\u00f3n/Proyectos/Prueba/main.cpp:9:
    /home/paco/Desktop/Proyectos Programaci\u00f3n/SDK/Linux/gp2xdev/lib/libSDL.a:3:1: aviso: caracter(es) nulo(s) descartados
    /home/paco/Desktop/Proyectos Programaci\u00f3n/SDK/Linux/gp2xdev/lib/libSDL.a:3: error: \u2018\1\u2019 par\u00e1sito en el programa

    Alguien me echa una mano? Como véis no tengo ni idea de configuración de entorno. Además tengo una duda, cuando tengo un archivo .h puedo ver el contenido para comprobar las funciones a usar, pero con los .a no puedo editarlo. ¿A qué se debe esto?

    Muchas gracias y un saludo.

  9. #9

    Fecha de ingreso
    Apr 2006
    Mensajes
    1,021
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2
    Agradecer Thanks Received 
    10
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Bueno, después de leer varios foros, posts, etc... he llegado a la siguiente situación, no sé si buena o mala, a alguien le suena?

    No se porque no se ve la imagen, así que la adjunto directamente.

    Gracias y un saludo.
    Imágenes adjuntadas Imágenes adjuntadas  
    Última edición por fmayosi; 08/12/2008 a las 20:54

  10. #10

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,348
    Mencionado
    93 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    371
    Agradecer Thanks Received 
    1,789
    Thanked in
    Agradecido 946 veces en [ARG:2 UNDEFINED] posts
    Pero buen hombre, ¿qué haces incluyendo las .a? Los .h (ascii) son los archivos que cuentan qué es lo que una .a/.so tiene (binario), y esos .h son los que tienes que incluir en tus programas .c/.cpp (ascii) para compilarlos. Una vez compilados en .o (binario) es cuando linkas a los .a/.so (binario)

    Parece que tu problema es que no usas bien las opciones -I del compilador (para poner la ruta a las cabeceras .h) y -L del linkador (para poner la ruta a las librerías .a)

    Es decir, para compilar tu archivo necesitas poner:

    En maincpp: #include <SDL.h>

    En el compilador: $(GP2XDEV)/gcc -o main.o -I$(GP2XDEV)/include main.cpp

    En el linkador: $(GP2XDEV)/ld -static -o miprograma.gpe -L$(GP2XDEV)/lib main.o -lSDL -lm -lpthread

    Échale un vistazo al hilo que acaba de publicar programatta http://www.gp32spain.com/foros/showthread.php?t=60206
    Última edición por juanvvc; 08/12/2008 a las 21:21

  11. #11

    Fecha de ingreso
    May 2004
    Ubicación
    Coslada, Madrid
    Mensajes
    13,259
    Mencionado
    2 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    12
    Thanked in
    Agradecido 9 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    6
    Yo por mi parte te recomiendo enlazar con las bibliotecas dinámicamente para que también sea compatible con la Wiz

  12. #12

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,348
    Mencionado
    93 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    371
    Agradecer Thanks Received 
    1,789
    Thanked in
    Agradecido 946 veces en [ARG:2 UNDEFINED] posts
    Puck, se te olvidó comentar que si decide compilar dinámicamente, simplemente tiene que quitar el -static de las opciones del linkador, y el resto es igual.

    Yo al principio reomendaba compilar estáticamente, pero vista la opinión de Puck y los éxitos que ha tenido con la compilación dinámica, casi que es preferible para mantener la compatibilidad aunque probablemente pierdas un poco de velocidad porque los coreanos son así

  13. #13

    Fecha de ingreso
    May 2004
    Ubicación
    Coslada, Madrid
    Mensajes
    13,259
    Mencionado
    2 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    12
    Thanked in
    Agradecido 9 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    6
    Cita Iniciado por juanvvc Ver mensaje
    Puck, se te olvidó comentar que si decide compilar dinámicamente, simplemente tiene que quitar el -static de las opciones del linkador, y el resto es igual.
    Sí, asumí que ya lo sabría, pero no está de más recordarlo

    Cita Iniciado por juanvvc Ver mensaje
    Yo al principio reomendaba compilar estáticamente, pero vista la opinión de Puck y los éxitos que ha tenido con la compilación dinámica, casi que es preferible para mantener la compatibilidad aunque probablemente pierdas un poco de velocidad porque los coreanos son así
    Hombre, pierde velocidad porque no están aceleradas, pero por otro lado también te aseguras de que si cambian de firmware no te vaya mal la aplicación como nos ha pasado tantas veces...

  14. #14

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,348
    Mencionado
    93 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    371
    Agradecer Thanks Received 
    1,789
    Thanked in
    Agradecido 946 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Puck2099 Ver mensaje
    Hombre, pierde velocidad porque no están aceleradas
    ¿Y qué les costaría acelerarlas? En la comparación que hicieron en gp32x hace unos días la Wiz no sale muy bien parada precisamente por eso: casi el triple de frecuencia que la Gp2x, pero solo una mejora del 50% en el rendimiento.

    Esperemos que la falta de aceleración solo sea porque son versiones beta de las librerías...

  15. #15

    Fecha de ingreso
    Apr 2006
    Mensajes
    1,021
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2
    Agradecer Thanks Received 
    10
    Thanked in
    Agradecido 4 veces en [ARG:2 UNDEFINED] posts
    Buenas, si es que como decía al principio soy un poco muñón, pero no veo en ningún sitio los .h.

    Os explico, he bajado las librerías de Uncanny, las he descomprimido y lo que tengo son los ficheros .a y .so, he estado mirando en varios sitios y en alguno vi que llamaban directamente al .a, por eso he probado así y parece que al menos encuentra las funciones, porque de eso no se quejaba.

    Estas librerías las tiene la Wiz? (Sip, ya he encargado mi Wiz, porque tengo pensado hacer algo con ella) he elegido la estática por ese motivo.

    Voy a ver si localizo en algún sitio los ficheros de cabecera, es que la verdad es que esto de experimentar sólo da dolores de cabeza. Hasta ahora usaba el SDK oficial para Windows y como eso es instalar y ya está, pues no tenía tantos problemas. :P Pero como comenté en el portatil tengo Linux y podría instalar las SDL normales o el SDK original, pero quería experimentar un poco con las librerías de Payren.

    A ver si esta tarde sigo probando un poquitlo.

    Muchas gracias a todos por la ayuda.

    Un saludo.

Página 1 de 3 123 ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •