Проблема на Mac: не удается найти регистр в классе BREG при перезагрузке asm

Я попытался перенести код на Mac OS X.

Программа использует библиотеку "ttmath", библиотеку заголовков с большим числом заголовков. Эта библиотека отлично работает как в Windows, так и в Linux, но когда я пытаюсь скомпилировать и запустить ее на Mac, всегда появляется следующее сообщение об ошибке:

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

Я обнаружил, что в некоторых документах говорится, что эта проблема связана со старой версией компилятора GCC (сборка 5488), но это сообщение все еще появляется после того, как я обновил GCC.

в настоящее время моя версия GCC:

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

и ОС: Mac OS X версии 10.5.8

Я не могу найти полезной информации о том, как решить эту проблему, может ли кто-нибудь мне помочь? Большое спасибо!


person Claire Huang    schedule 24.10.2010    source источник
comment
Я видел эту ошибку при компиляции кода сборки, небезопасного для PIC, с помощью -fpic. Может быть, gcc Mac по умолчанию использует эту опцию, а код ttmath не безопасен для PIC? (Было бы полезно подробнее узнать, откуда именно возникла ошибка.)   -  person vanza    schedule 25.10.2010
comment
Вы знаете, у GCC сейчас версия 4.5. Обновление до 4.0.1 все еще устарело.   -  person Puppy    schedule 25.10.2010
comment
Если вы используете текущий Xcode (3.x), вы получите gcc 4.2. Я думаю, что для этого может потребоваться обновление до OS X 10.6.   -  person Paul R    schedule 25.10.2010
comment
Ванзе: Спасибо! Пробовал выключить и работает !!! Теперь мне просто нужно выяснить, как указать эту опцию в Qt Creator :)   -  person Claire Huang    schedule 25.10.2010
comment
В DeadMG: Apple еще не предоставила gcc 4.3 или выше для пользователей MAC. Ванзе: Я использую Xcode 3.1.3, но он все еще 4.0.1 ›‹ Я пытался загрузить Xcode 3.2, но он работает только для 10.6 или выше, в любом случае, спасибо за ваше предложение! :)   -  person Claire Huang    schedule 25.10.2010


Ответы (1)


Спасибо за DeadMG! Эта проблема связана с опцией PIC-safe.

Я добавил "-mdynamic-no-pic" и "-fno-pic" при компиляции кода, и теперь он отлично работает :)

person Claire Huang    schedule 24.10.2010