2010-10-24 11 views
5

me trató de puerto de un cierto código en Mac OS X.Problemas en Mac: "No se puede encontrar un registro en la clase BREG mientras recarga asm"

El programa utiliza la biblioteca "ttmath", una cabecera de gran num biblioteca de encabezado. Esta biblioteca funciona bien en Windows y Linux, pero cuando intento compilar y ejecutarlo en un Mac, el mensaje de error siguiente aparece siempre:

"can't find a register in class 'BREG' while reloading 'asm'". 

he encontrado algunos documentos dicen que este problema se debe a la versión anterior del compilador GCC (compilación 5488), pero este mensaje aún aparece después de actualizar GCC.

actualmente mi versión de GCC es:

i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5490) 

y el sistema operativo es: Versión Mac OS X 10.5.8

No puedo encontrar ninguna información útil acerca de cómo resolver este problema, es ¿Alguien puede ayudarme? ¡Muchas gracias!

+2

que he visto este error al compilar el código de montaje no-PIC-seguro con -fPIC. ¿Tal vez el gcc de Mac por defecto tiene esa opción activada, y ese código no es seguro para PIC? (Serán útiles más detalles acerca de dónde proviene exactamente el error.) – vanza

+0

Ya sabe, GCC tiene una versión 4.5 ahora. La actualización a 4.0.1 todavía es muy antigua. – Puppy

+0

Si usa el Xcode actual (3.x), entonces obtiene gcc 4.2. Creo que esto puede requerir que actualices a OS X 10.6. –

Respuesta

2

Gracias por DeadMG! Este problema se debe a la opción PIC-safe.

que añade "-mdynamic-no-pic" y "-fno-pic" cuando compilar el código, y funciona bien ahora :)

Cuestiones relacionadas