2010-10-24 10 views
5

ho provato a porta po 'di codice su Mac OS X.Problema su Mac: "Non riesco a trovare un registro in classe BREG mentre ricarico asm"

Il programma utilizza la libreria "ttmath", un colpo di testa big-num libreria di intestazioni. Questa libreria funziona bene su Windows e Linux, ma quando provo a compilare ed eseguirlo su un Mac, il seguente messaggio di errore mostra sempre:

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

ho trovato alcuni documenti dicono che questo problema è dovuto a la vecchia versione del compilatore GCC (build 5488), ma questo messaggio appare ancora dopo aver aggiornato GCC.

attualmente la mia versione GCC è:

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

e il sistema operativo è: Mac OS X versione 10.5.8

non riesco a trovare tutte le informazioni utili su come risolvere questo problema, è lì qualcuno può aiutarmi? Molte grazie!

+2

Ho visto questo errore quando si compila non-PIC-safe codice assembly con -fPIC. Forse il gcc di Mac è impostato su questa opzione e il codice di ttmath non è sicuro per il PIC? (Ulteriori dettagli sulla provenienza esatta dell'errore potrebbero essere utili.) – vanza

+0

Sai, GCC ora ha una versione 4.5. L'aggiornamento alla 4.0.1 è ancora molto vecchio. – Puppy

+0

Se si utilizza l'attuale Xcode (3.x), si ottiene gcc 4.2. Penso che questo potrebbe richiedere l'aggiornamento a OS X 10.6. –

risposta

2

Grazie per DeadMG! Questo problema è dovuto all'opzione PIC-safe.

ho aggiunto "-mdynamic-no-pic" e "-fno-pic" quando compilo il codice, e funziona bene ora :)

Problemi correlati