[WII] Problemas con GRRLIB 3.0.1

Bueno, me he estado mirando la web de GRRLIB, ya que no conseguia compilar nada con esta libreria, y he intentado hacerlo con un ejemplo de la web. el ejemplo es el siguiente:
/*===========================================
        GRRLIB (GX version) 3.0.1 alpha
        Code     : NoNameNo
        GX hints : RedShade

        Http://grrlib.santo.fr
        Tutorial : Day 7 (Print text)
============================================*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <math.h>
#include <ogcsys.h>
#include <gccore.h>
#include <wiiuse/wpad.h>
#include <fat.h>

#include <GRRLIB/GRRLIB.h>
#include "fuente/font5.h"

Mtx GXmodelView2D;

int main(){
   u8 *tex_font1 = GRRLIB_LoadTexture(font5);
   int var=55;


    VIDEO_Init();
    WPAD_Init();

    GRRLIB_InitVideo();
    GRRLIB_Start();

    while(1){
        WPAD_ScanPads();
        u32 wpaddown = WPAD_ButtonsDown(0);

        GRRLIB_FillScreen(0xFF000000);
        GRRLIB_Printf(100,100,tex_font1,0xFFFFFFFF,1,"var value : %d",var);
        GRRLIB_Render();

        if (wpaddown & WPAD_BUTTON_A) exit(0);
    }
    return 0;
}

Pero cuando intento compilar, me sale esto
> "make"
Prueba.c
c:/Devprojects/source/Prueba.c: In function 'main':
c:/Devprojects/source/Prueba.c:25: warning: passing argument 1 of 'GRRLIB_LoadTexture' from incompatible pointer type
c:/Devprojects/source/Prueba.c:46:2: warning: no newline at end of file
linking ... Devprojects.elf
Prueba.o: In function `main':
c:/Devprojects/source/Prueba.c:25: undefined reference to `GRRLIB_LoadTexture'
c:/Devprojects/source/Prueba.c:32: undefined reference to `GRRLIB_InitVideo'
c:/Devprojects/source/Prueba.c:33: undefined reference to `GRRLIB_Start'
c:/Devprojects/source/Prueba.c:39: undefined reference to `GRRLIB_FillScreen'
c:/Devprojects/source/Prueba.c:40: undefined reference to `GRRLIB_Printf'
c:/Devprojects/source/Prueba.c:41: undefined reference to `GRRLIB_Render'
collect2: ld returned 1 exit status
make[1]: *** [/c/Devprojects/Devprojects.elf] Error 1
"make": *** [build] Error 2

> Process Exit Code: 2
> Time Taken: 00:02

Que es lo que estoy haciendo mal?
No soy un experto y de hecho este tema aun no se muy bien como funciona, pero te lo voy a intentar de explicar mas o menos.

Imagina que hago algo básico con SDL con su:

#include "SDL/SDL.h"

yo no puedo hacer

gcc -o programa programa.c ya que me diría:

programa.c:(.text+0xb8): undefined reference to `SDL_Init'
programa.c:(.text+0xe7): undefined reference to `SDL_SetVideoMode'
programa.c:(.text+0x115): undefined reference to `SDL_WM_SetCaption'
programa.c:(.text+0x227): undefined reference to `SDL_Flip'
programa.c:(.text+0x264): undefined reference to `SDL_Delay'
programa.c:(.text+0x270): undefined reference to `SDL_FreeSurface'
programa.c:(.text+0x27c): undefined reference to `SDL_FreeSurface'
programa.c:(.text+0x281): undefined reference to `SDL_Quit'

Me esta diciendo que no encuentra esas funciones que he usado, ya que SDL.h no está cargado, entonces lo que debes de hacer es lo siguiente:

gcc programa.c -I /usr/include/SDL -lSDL -o programa

Le indico la ruta donde está el SDL y le digo que cargue sdl con -SDL. Entonces ya compila perfectamente.

En tu caso parece que usas un makefile, asi que probablemente esté mal (diria yo).

No sé, si GRRLIB está dentro del toolchain de wii podrías hacer algo asi:

gcc Prueba.c -I /ruta/del/include/dentro/del/toolchain -lGRRLIB -o Prueba

Nota: el primer I es una i minuscula y lo de lGRRLIB es una L minuscula :P.

O sea le estas diciendo la ruta de los include del toolchain de WII para que encuentre GRRLIB y luego usar GRRLIB que esta en ese directorio. Si no funciona colocando la ruta normal, intentalo poniendo GRRLIB al final de la ruta tambien, o sea:

gcc Prueba.c -I /ruta/del/include/dentro/del/toolchain/GRRLIB -lGRRLIB -o Prueba


Quizas esto no sea tu error, pero es lo que yo entiendo, que no encuentra la libreria. Otra cosa es que no la tengas bien instalada :P.


Si compila a mano, modifica el Makefile para que use eso extra que te dije.



Un saludo.
JOOOOOOOOOOOOOOOOOOOOOODER!!!!!!!!!!!
Ya lo he conseguido compilar, habia un error en el makefile, no tenia todo ordenado como debia xD muchisimas gracias por todo :)
2 respuestas