Charlie52 escribió:Ya te digo que estoy un poco a ciegas en PS2, pero estaba leyendo este Makefile
https://github.com/ps2dev/ps2sdk-ports/ ... t/Makefile con ejemplos que usa SDL y compila para tener un .elf. Si quieres prueba estos comandos desde la propia línea de comandos donde tengas el prueba.c y luego lo adaptas a tu IDE y a tus variables del entorno. No sea que te este poniendo el fichero en algún otro sitio...
ee-gcc -D_EE -G0 -I/usr/lib/ps2dev/ps2sdk/ee/include -I/usr/lib/ps2dev/ps2sdk/common/include -I/usr/local/ps2dev/ps2sdk/ports/include/SDL -c prueba.c -o prueba.o
ee-gcc: el compilador
-D_EE: el macro _EE que por ejemplo usa SDL para saber que la plataforma es little endian
https://github.com/ps2dev/ps2sdk-ports/ ... rder.h#L49-G0: Sin información para el debugger. La verdad es que no sé cómo será la depuración en PS2.
-I/usr/lib/ps2dev/ps2sdk/ee/include: headers que seguramente use SDL y de la librería C como stdlib.h de tu ejemplo
-I/usr/lib/ps2dev/ps2sdk/common/include: lo mismo
-I/usr/local/ps2dev/ps2sdk/ports/include/SDL: para poder usar SDL.h
-c: indica que solo quieres compilar, no linkear
prueba.c: el fichero C de tu código
-o: salida
prueba.o: el fichero object
Esa era la fase de compilación, es posible que a lo mejor te da algún error si yo me he equivocado en algo...
ee-gcc -mno-crt0 -T/usr/lib/ps2dev/ps2sdk/ee/startup/linkfile -nostartfiles -L/usr/lib/ps2dev/ps2sdk/ee/lib -o prueba.elf /usr/lib/ps2dev/ps2sdk/ee/startup/crt0.o prueba.o -lc -L/usr/lib/ps2dev/gsKit/lib -L/usr/local/ps2dev/ps2sdk/ports/lib -lsdl -lcdvd
ee-gcc: el compilador aunque ahora hace de linker
-mno-crt0: No linkea nada en el crt0.o
-T/usr/lib/ps2dev/ps2sdk/ee/startup/linkfile: el script que linkea para crt0
-nostartfiles: no utilizar el crt0 del sistema, hay que dar uno propio de ps2sdk
-L/usr/lib/ps2dev/ps2sdk/ee/lib: aquí debería estar libc.a para poder linkear con la librería C del propio ps2sdk
-o: salida
prueba.elf: tu fichero ELF
/usr/lib/ps2dev/ps2sdk/ee/startup/crt0.o: linkea con el crt0 del propio ps2sdk
prueba.o: linkea con tu fichero object que anteriormente hemos compilado
-lc: linkea el libc.a
-L/usr/lib/ps2dev/gsKit/lib: no entiendo por qué especifica este directorio si luego no linkea nada con libgskit.a ¿A lo mejor lo puedes quitar sin problemas?
-L/usr/local/ps2dev/ps2sdk/ports/lib: el directorio donde tendrías que tener libsdl.a
-lsdl: linkea la librería libsdl.a
-lcdvd: aquí también tengo mis dudas de si es necesario linkear con libcdvd.a. Posiblemente me equivoque pero parece que
SDL se compila incluyendo ya dentro de libsdl.a todas las librerías necesarias como libcdvd.a y libgskit.a ¿Por eso a lo mejor tampoco hay que especificar -lgskit?
A lo mejor falla en algo, pero creo que te puede servir como base para crear tu propio comando para compilar y crear el fichero ELF en el mismo directorio donde tengas el prueba.c, así descartas otros errores del IDE.
Un saludo!