Problema con el Linker "reubicación truncada para ajustar"

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06

Responder
Avatar de Usuario
gokuhs
Experto
Experto
Mensajes: 1142
Registrado: 23 Sep 2009, 15:16
PSN ID: gokuhs
Steam ID: gokuhss
Twitter: gokuhss
Ubicación: Alicante
Contactar:

Problema con el Linker "reubicación truncada para ajustar"

Mensaje por gokuhs »

Hola a todos!

Estoy teniendo ciertos problemas al linkear esta parte del código (pongo una parte si lo quereís ocmpleto lo pego entero)

Código: Seleccionar todo

class ListaPrincipal
{
  protected :
    static Uint32 frames, tiempo, t_espera;
    [...]
    //Resto de variables
  public :
    ListaPrincipal();
    ~ListaPrincipal();
    [...]
    static int refrescar(SceSize args, void *argp);
};


 ListaPrincipal::ListaPrincipal()
{
  [...]
  frames = Uint32( 1000 / FOTOGRAMAS );
  tiempo = SDL_GetTicks() + frames;
}

int ListaPrincipal::refrescar(SceSize args, void *argp)
{
  int flag = 0;
  SDL_Event event;
  while(!flag)
  {
    if (SDL_PollEvent(&event)) {
     /* an event was found */
      switch (event.type) {
   /* close button clicked */
   case SDL_QUIT:
     flag = 1;
     break;
      }
    }
    t_espera = tiempo - SDL_GetTicks();
    if ( ( t_espera > 0 ) && ( t_espera < frames ) ) SDL_Delay( t_espera );
    else tiempo = SDL_GetTicks();
    tiempo += frames;
  }
  return 0;
}


Esa es la parte del código donde me da el siguiente error:

Código: Seleccionar todo

claseListaSDL.cpp:(.text+0xa0): referencia a `ListaPrincipal::tiempo' sin definir
claseListaSDL.cpp:(.text+0xa0): reubicación truncada para ajustar: R_MIPS_GPREL16 contra `ListaPrincipal::tiempo'
claseListaSDL.cpp:(.text+0xcc): referencia a `ListaPrincipal::t_espera' sin definir
claseListaSDL.cpp:(.text+0xcc): reubicación truncada para ajustar: R_MIPS_GPREL16 contra `ListaPrincipal::t_espera'
claseListaSDL.cpp:(.text+0xd0): referencia a `ListaPrincipal::frames' sin definir
claseListaSDL.cpp:(.text+0xd0): reubicación truncada para ajustar: R_MIPS_GPREL16 contra `ListaPrincipal::frames'
claseListaSDL.cpp:(.text+0x100): referencia a `ListaPrincipal::tiempo' sin definir
claseListaSDL.cpp:(.text+0x100): reubicación truncada para ajustar: R_MIPS_GPREL16 contra `ListaPrincipal::tiempo'
claseListaSDL.cpp:(.text+0x104): referencia a `ListaPrincipal::tiempo' sin definir
claseListaSDL.cpp:(.text+0x104): reubicación truncada para ajustar: R_MIPS_GPREL16 contra `ListaPrincipal::tiempo'
claseListaSDL.cpp:(.text+0x108): referencia a `ListaPrincipal::frames' sin definir
claseListaSDL.cpp:(.text+0x108): reubicación truncada para ajustar: R_MIPS_GPREL16 contra `ListaPrincipal::frames'
claseListaSDL.cpp:(.text+0x114): referencia a `ListaPrincipal::tiempo' sin definir
claseListaSDL.cpp:(.text+0x114): reubicación truncada para ajustar: R_MIPS_GPREL16 contra `ListaPrincipal::tiempo'
claseListaSDL.cpp:(.text+0x144): referencia a `ListaPrincipal::tiempo' sin definir
claseListaSDL.cpp:(.text+0x144): reubicación truncada para ajustar: R_MIPS_GPREL16 contra `ListaPrincipal::tiempo'
claseListaSDL.cpp:(.text+0x1a0): referencia a `ListaPrincipal::tiempo' sin definir
claseListaSDL.cpp:(.text+0x1a0): reubicación truncada para ajustar: R_MIPS_GPREL16 contra `ListaPrincipal::tiempo'
class/claseListaSDL.o: En la función `ListaPrincipal::ListaPrincipal()':
claseListaSDL.cpp:(.text+0x31c): referencia a `ListaPrincipal::frames' sin definir
claseListaSDL.cpp:(.text+0x31c): reubicación truncada para ajustar: R_MIPS_GPREL16 contra `ListaPrincipal::frames'
claseListaSDL.cpp:(.text+0x334): referencia a `ListaPrincipal::frames' sin definir
claseListaSDL.cpp:(.text+0x334): se omitieron desbordamientos de reubicación adicionales de la salida
claseListaSDL.cpp:(.text+0x34c): referencia a `ListaPrincipal::tiempo' sin definir
claseListaSDL.cpp:(.text+0x394): referencia a `ListaPrincipal::frames' sin definir
claseListaSDL.cpp:(.text+0x3a4): referencia a `ListaPrincipal::tiempo' sin definir
class/claseListaSDL.o: En la función `ListaPrincipal::ListaPrincipal()':
claseListaSDL.cpp:(.text+0x4fc): referencia a `ListaPrincipal::frames' sin definir
claseListaSDL.cpp:(.text+0x514): referencia a `ListaPrincipal::frames' sin definir
claseListaSDL.cpp:(.text+0x52c): referencia a `ListaPrincipal::tiempo' sin definir
claseListaSDL.cpp:(.text+0x574): referencia a `ListaPrincipal::frames' sin definir
claseListaSDL.cpp:(.text+0x584): referencia a `ListaPrincipal::tiempo' sin definir


Gracias por la ayuda!

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Problema con el Linker "reubicación truncada para ajusta

Mensaje por m0skit0 »

Qué extraño... Si puedes subir el código compilable que da el error, podría probar a compilarlo yo.
Imagen

Avatar de Usuario
gokuhs
Experto
Experto
Mensajes: 1142
Registrado: 23 Sep 2009, 15:16
PSN ID: gokuhs
Steam ID: gokuhss
Twitter: gokuhss
Ubicación: Alicante
Contactar:

Re: Problema con el Linker "reubicación truncada para ajusta

Mensaje por gokuhs »

Ya lo solucioné m0skit0 gracias;

Me tocó hacer con todos los miembros estáticos de la clase lo siguiente:

Código: Seleccionar todo

int ListaPrincipal::numSuperficies = 0;
bool ListaPrincipal::refre = false;
nodoImagenes * ListaPrincipal::primero =  NULL;
SDL_Surface * ListaPrincipal::principal = NULL;
nodoImagenes * ListaPrincipal::surfMSGBox = NULL;
nodoImagenes * ListaPrincipal::surfCursor = NULL;
Uint32 ListaPrincipal::frames = Uint32();
Uint32 ListaPrincipal::tiempo = Uint32();
Uint32 ListaPrincipal::t_espera = Uint32();


Una vez lo hice los datos tipos Uint32 me dejaron de dar ese error en el Linker. Sinceramente no se porqué daría ese error y me obligue a inicializaros fuera del constructor.

(si sigues interesado te subo el código sin modificar para que le eches un vistazo)

De todas formas ahora abriré otro hilo porque sigo con mas problemas en el makefile que o yo no entiendo muy bien o me está dando mas problemas que un hijo tonto.

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Problema con el Linker "reubicación truncada para ajusta

Mensaje por m0skit0 »

Eso es porque los datos tienen que estar alineados a palabra (32-bits, o múltiplo de 4) en MIPS, sino te daría error. Lo que no sé es por qué no te lo hacía automáticamente el compilador...
Imagen

Responder