Problema del compilador?

Pues veréis estaba definiendo unas cuantas funciones de lectura de archivos, usando la librería stdio.h (Standard IO Header), pero, al crear el main.o, el PSP Dev Kit me da el error:

'Undefined reference to fopen' y también con fgets.

¿Alguien sabe por qué?

En unos foros ingleses hablaban de que esas funciones no estaban hechas específicamente para el modo Kernel, pero lo he probado con un EBOOT user y un PRX (Kernel) y nada, para mí que es o un lío mio (otro lol) o alguna tontería...

Un saludo y gracias


http://www.mhypnok.blogspot.com/

Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de joserc87

No creo que sea error del compilador.

Casi nunca (por no decir nunca) es error del compilador. Puede ser error del que compiló el compilador (si bajaste los fuentes y lo compilaste) o generalmente del programador.

"Undefined reference to" significa siempre que te falta una biblioteca o fichero objeto que no enlaza por defecto. Tendrás que añadir a la orden de compilación un -lstdc++ o algo por el estilo (te digo stdc++ por defirte algo aunque no se si stdc++ te solucionará el problema, aunque si no es libstdc++ será otra por el estilo).


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de dj51_Shura

Gracias

pero la stdio.h estuve mirando y no está compilada, es decir, no he encontrado ninguna 'libstdio.a' o por el estilo...

y... bueno es algo extraño pero va a ratos (el source es mío): a veces dice lo de referencia no definida y otras veces compila perfecto

De nuevo debo quedarme con un gran gran WTF además de mi enorme ignorancia ;-)

Un saludo y gracias!


http://www.mhypnok.blogspot.com/

Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...

Imagen de joserc87

Stdio.h

Hay que diferenciar entre los .h y las bibliotecas. Un .h es simplemente un fichero de cabecera donde definimos cosas, que pueden estar implementadas en una biblioteca, o no. stdio.h no tiene porque tener su propia biblioteca libstdio, puede ser parte de una biblioteca mayor (en este caso creo que sería libc, una biblioteca con funciones de C estandar http://www.delorie.com/djgpp/doc/libc/libc_624.html). Es decir, por un lado tienes el .h que le dice al compilador la forma que tienen las funciones, y por otro la biblioteca que implementa dichas funciones y que se une al programa en la fase de enlazado del compilador (o incluso en ejecución si es una dll. Libc es la biblioteca más básica de C. Si no tienes Libc, "apaga y vamonos", pero casi seguro que la tienes.


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de dj51_Shura

Perdona

ya lo solucioné, muchas gracias de todos modos...

precisamente, eliminando los

USE_KERNEL_LIBS = 1

USE_KERNEL_LIBC = 1

me funcionaba perfecto...

sorry por la estúpida pregunta...

y un saludo!


http://www.mhypnok.blogspot.com/

Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...

Imagen de Chimecho

mmm...

la pregunta más estúpida, es la que no se hace... ¬¬'

Imagen de joserc87

Totalmente de acuero

Totalmente de acuerdo chimecho.  O la pregunta que se hace conociendo de antemano la respuesta. Como no es tu caso, la pregunta es totalmente válida, y este foro está para solucionarlas. Además ten en cuenta que es posible que alguien llegue con el mismo problema que tú y sepa solucionarlo gracias a esta hebra.


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de dj51_Shura

xD

Perdona, lo dije porque ahora que ya lo sabía me parecía un tanto 'tonto', en su día googleé de aquí para allá y creo recordar que al fin encontré una referencia en pspslimhacks, lo probé y de maravilla, por eso ahora me parece un poco tonta la pregunta...

Un saludo


http://www.mhypnok.blogspot.com/

Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.