Error de linkado en PSP usando threads

Estoy haciendo un port a PSP de un juego, utilizando el Minimalist SDK. Con este SDK he podido compilar varias aplicaciones sin problemas... Sin embargo, este juego que estoy portando utiliza threads.

En principio esto no debería ser problema, estoy usando la librería pthread-psp y el juego compila perfectamente... pero da errores al linkar, a pesar de que estoy poniendo el flag "-lpthread-psp" en el Makefile.

Los errores que me da, son las típicas "undefined reference" a las funciones que tienen que ver con pthread (pthread_mutex_lock, pthread_cond_signal, pthread_mutex_unlock, etc...).

Incluso he probado a recompilar yo mismo la librería de los threads, generando el nuevo fichero ".a", pero nada cambia (el juego compila bien, pero no linka). Y he probado a poner el flag "-lpthread-psp" en varios sitios distintos, sin éxito...

¿Alguien ha utilizado threads al programar para la PSP? ¿Habéis tenido que usar esta librería? ¿Os habéis encontrado con algún error similar?

Si alguien ha usado threads en la PSP y me pudiera contar su experiencia, le estaría muy agradecido :)
desarchivado a petición de hcf
Gracias por desarchivarlo. Simplemente quería decir que he encontrado la solución al problema, y la voy a poner por si alguien encuentra este hilo buscando ayuda con el mismo problema...

El problema es que en la librería pthreads-emb-1.0, el autor hizo un Makefile preparado para compilar la librería usando GCC (como si fuera simple C estándar). Y yo estaba compilando mi proyecto con G++ (puesto que usaba C++). Entonces, al llamar a esta librería desde C++, daban las "undefined reference"...

Hay varias formas de solucionarlo, y la que yo he elegido es cambiar el Makefile de la librería pthreads-emb-1.0, para que se compile con el G++
Simplemente he tenido que añadir esta línea en el Makefile de la librería:

CC=psp-g++

Luego he recompilado la librería pthreads-emb-1.0, he puesto el fichero ".a" resultante en el path "lib", y al compilar mi proyecto, esta vez ha linkado bien :)
2 respuestas