Моя проблема возникает при использовании MinGW32-w64
с GCC 4.6.1
В более старых версиях GCC
библиотека времени выполнения ObjC
была по существу гнилой на корню; часто предлагалось уничтожить общую библиотеку и связать ее только со статической библиотекой. Сама библиотека существовала только как единственная версия, libobjc.a
.
Начиная с GCC 4.6
, мы получили совершенно новую библиотеку времени выполнения ObjC
, которая поддерживает функции 2.0 и все другие полезные вещи. Он также представил как 64-, так и 32-разрядные версии общей библиотеки (libobjc_64-3.dll
, libobjc-3.dll
), с которыми вы можете ссылаться без проблем.
Беглый взгляд на статическую библиотеку показывает, однако, только один файл, libobjc.a
, и вот где моя проблема: попытка статически связать эту библиотеку дает ссылку на неопределенную ошибку для всех функций библиотеки времени выполнения.
Честно говоря, я не знаю, куда идти отсюда, и все мои поиски не дали ничего полезного. Надеюсь, кто-то может пролить свет на этот вопрос.
Чтобы статически связать библиотеку, я попробовал оба варианта -Wl,-static -lobjc
, и когда это не сработало, не было -static -lobjc
, чтобы заставить приложение связывать все как статическую библиотеку. Я получил одинаковую ошибку в обоих случаях.