User Tag List

Resultados 1 al 13 de 13

Tema: Portando SDL a la Dingoo A320

  1. #1

    Fecha de ingreso
    Mar 2003
    Ubicación
    Cerdanyola
    Mensajes
    3,846
    Mencionado
    46 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    38
    Agradecer Thanks Received 
    1,887
    Thanked in
    Agradecido 614 veces en [ARG:2 UNDEFINED] posts

    Portando SDL a la Dingoo A320

    Buenas, estoy intentando portar las SDL a la dingoo, pero no hay manera, para empezar queria compilar las librerias SDL en windows ya que el sdk de la dingoo tiene la libreria compilada para windows y asi podria ir haciendo pruebas...

    Me he bajado el codigo de las sdl y he preparado todo para que se usaran las funciones del sdk de la dingoo, despues de pelearme entre si unos ficheros se compilan en c++ otros en c (porque el sdk de la dingoo es en c++)... he conseguido compilar todo, el problema viene al linkar, que salen como 50 referencias no encontradas desde dentro del propio codigo de las sdl, de unos trozos a otros.

    Alguien que haya intentado compilar las sdl con codigo c/c++ a la vez?

    Estoy intentando compilarlo todo con devcpp.

  2. #2

    Fecha de ingreso
    Jan 2008
    Ubicación
    Madrid
    Mensajes
    4,465
    Mencionado
    14 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    88
    Agradecer Thanks Received 
    171
    Thanked in
    Agradecido 100 veces en [ARG:2 UNDEFINED] posts
    Para mezclar librerías C y C++ lo mejor es pasar todo a C++ renombrando los ficheros .c a .cpp. Esto es porque los ficheros objeto no son compatibles. El compilador c++ añade símbolos especiales a las funciones. Sino, tendrías que añadir directivas ifdef __cplusplus por todo el código C.
    Aún así, yo no trataría de pasar todo el código de SDL a la dingoo (no es sólo recompilar), sino crear un pequeña libreria que permita dibujar en pantalla usando la memoria de vídeo y el hardware.
    Última edición por hardyx; 15/03/2009 a las 23:11

  3. #3

    Fecha de ingreso
    Mar 2003
    Ubicación
    Cerdanyola
    Mensajes
    3,846
    Mencionado
    46 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    38
    Agradecer Thanks Received 
    1,887
    Thanked in
    Agradecido 614 veces en [ARG:2 UNDEFINED] posts
    El problema es que en c++ no acababa de compilar bien todas las SDL, si quiero compilar las SDL es para poder portar luego otros programas en SDL tambien, pero gracias por decirme lo de los ficheros objeto, eso explica muchas cosas xD
    < - >
    Creo que ya se que intentare. Creare un wrapper para las librerias de la dingoo que no necesite ser usado como c++ (contiene clases y demas) y despues usare esa libreria desde las sdl compiladas con C, a ver si asi...
    Última edición por Wave; 16/03/2009 a las 08:56 Razón: Edición automática anti doble-post.

  4. #4

    Fecha de ingreso
    Apr 2009
    Mensajes
    9
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Me encantaría ayudar con lo del port de SDL, creo que sería una de las mejores cosas que le podrían pasar a la Dingoo.

  5. #5

    Fecha de ingreso
    Jan 2007
    Ubicación
    Ciudad Catedral, Reino de Dick
    Mensajes
    3,638
    Mencionado
    7 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    151
    Agradecer Thanks Received 
    100
    Thanked in
    Agradecido 79 veces en [ARG:2 UNDEFINED] posts
    C y C++ son dos lenguajes diferentes.

    Para que el código C funcione con C++ hay que declarar los objetos (en el sentido clásico, esto es, variables y funciones) como "externas en lenguaje C". Normalmente los modernos archivos de cabecera ya lo hacen, pero si no es este el caso (cosa que dudo, porque SDL no es nada viejo) puedes hacerlo así:
    Código:
    extern "C" {
      #include <sdl/sdl.h>
    }
    Si con eso no funciona, es que algo estás haciendo mal. Y cambiar la extensión del archivo de ".c" a ".cpp" o ".cc" no es una solución, sino una chapuza.

    El opuesto (que código C++ pueda utilizarse en C) es bastante más complicado, pero no imposible. Para ello basta con conocer el "mangled name" del objeto (de nuevo en el sentido clásico), esto es, el nombre que el compilador da a cada objeto, en el caso de llamadas a función añadir el puntero al objeto (esta vez en el sentido de C++) como primer parámetro y hacer la declaración en el archivo de cabecera, tal vez con ayuda del preprocesador.

    Cada compilador utiliza un generador de mangled name diferente, pero suele ser común que sea "_clasemetodoparametrosretorno", donde "parametros" y "retorno" son las iniciales del tipo de cada parámetro o del retorno (por ejemplo, "v" para void, "i" para integer "l" para long int, etc.).

    De todas formas, aunque el SDK sea en C++, dudo que la base esté escrita en dicho lenguaje, será como mucho una envolvente. Si me equivoco, sería el primer caso con el que me encuentro.
    Proyectos actuales ----> MinGRo
    Entorno de desarrollo ----> FreePascal | Vim

  6. #6

    Fecha de ingreso
    Feb 2003
    Mensajes
    3,154
    Mencionado
    37 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    170
    Agradecer Thanks Received 
    256
    Thanked in
    Agradecido 162 veces en [ARG:2 UNDEFINED] posts
    Aquí hay un ejemplo bastante bueno de cómo usar clases de C++ en C.

  7. #7

    Fecha de ingreso
    Mar 2003
    Ubicación
    Cerdanyola
    Mensajes
    3,846
    Mencionado
    46 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    38
    Agradecer Thanks Received 
    1,887
    Thanked in
    Agradecido 614 veces en [ARG:2 UNDEFINED] posts
    Por ahora lo mejor creo que es intentar aprender a usar las funciones que hay en la libreria entry.a que si estan en C, la gracia era que el sdk permitia desarrollar en windows y luego hacer el build para la dingoo.

  8. #8

    Fecha de ingreso
    Apr 2009
    Mensajes
    9
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    No creo que te equivoques.

  9. #9

    Fecha de ingreso
    Jan 2007
    Ubicación
    Ciudad Catedral, Reino de Dick
    Mensajes
    3,638
    Mencionado
    7 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    151
    Agradecer Thanks Received 
    100
    Thanked in
    Agradecido 79 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por jorgehj Ver mensaje
    No creo que te equivoques.
    TREMENDO APORTE TE PASASTE.
    Proyectos actuales ----> MinGRo
    Entorno de desarrollo ----> FreePascal | Vim

  10. #10

    Fecha de ingreso
    Dec 2006
    Ubicación
    Figueres, Girona, Spain
    Mensajes
    8
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts

    Código fuente

    ¿Por casualidad no tendrás el código de lo que hayas hecho (aunque no enlace) para poderle echar un vistazo? ¿Lo tienes en algún repositorio?

  11. #11

    Fecha de ingreso
    Mar 2003
    Ubicación
    Cerdanyola
    Mensajes
    3,846
    Mencionado
    46 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    38
    Agradecer Thanks Received 
    1,887
    Thanked in
    Agradecido 614 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por summaky Ver mensaje
    ¿Por casualidad no tendrás el código de lo que hayas hecho (aunque no enlace) para poderle echar un vistazo? ¿Lo tienes en algún repositorio?
    No lo tengo en ningun repositorio pero por el momento lo poco que habia hecho era crear una "entrada" para la dingoo en las sdl, luego intentar probar las mezclas C/C++ pero nada util por ahora, aunque si tienes alguna duda o puedo ayudar, pos aqui estamos.

  12. #12

    Fecha de ingreso
    Feb 2007
    Mensajes
    747
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Dios, que esto funcione, porfi porfi porf, dingo con sdl.... wow!!!

  13. #13

    Fecha de ingreso
    Jun 2006
    Mensajes
    142
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Tengo que probar con linux, porque con Visual C++ (que nunca he usado) ni si quiera soy capaz de que use mi SDL_config_s2d.h

    Podrías empaquetar lo que tienes, aunque sea poco, ¿y hacerlo disponible?

Etiquetas para este tema

Permisos de publicación

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