Почему я получаю ошибку компоновщика "_OBJC_CLASS _ $ ..., на которую ссылаются из:", когда правильно связал фреймворки? - PullRequest
10 голосов
/ 23 февраля 2012

Моя проблема

Я получаю "_OBJC_CLASS _ $ ..., ссылка из:" ошибка компоновщика при компиляции некоторых проектов XCode (это происходит как в проектах iOS, так и Mac).связанные структуры и импорт.

Настройка

  • Одна цель приложения
  • Одна цель тестирования
  • Все рамки связаны правильно

При компиляции я получаю следующие ошибки компоновщика: "_OBJC_CLASS _ $ _ JGCountdownTimer", на который ссылается: objc-class-ref в JGCountdownTimerTestCase.o

для многих классов, которые используются в тестах.

То, что я пробовал

  • Проверено, что импорт все присутствует
  • Удалены все нестандартные рамки
  • ЕслиЯ компилирую класс для цели теста и цели приложения, это решает проблему.Но потом я получаю другие предупреждения от компилятора.

Ответы [ 4 ]

13 голосов
/ 06 мая 2017

Я столкнулся с подобной проблемой.Я получил ошибку компоновщика:

_OBJC_CLASS_$_MyClass

Проблема заключалась в том, что я объявил @interface для MyClass, но не объявил его соответствующий @implementation.

Исправление было просто добавить

@implementation MyClass
@end
11 голосов
/ 23 февраля 2012

Быстрый ответ

Скопируйте и вставьте следующую строку в ваши настройки сборки:

GCC_SYMBOLS_PRIVATE_EXTERN = NO

В настройках целевой сборки найдитеMsgstr "Символы, скрытые по умолчанию".Для конфигурации Debug вы хотите «Нет».

У меня была эта проблема в течение многих месяцев, и я только что обнаружил, почему.

2 голосов
/ 23 февраля 2012

Не уверен, что это может быть проблемой, но с новым компилятором любой obj-c, который явно не упоминается / не вызывается, не будет связан с библиотеками. Это вызывает проблемы при реализации категорий в библиотеках, например.

Попробуйте добавить '-ObjC' в 'дополнительные флаги компоновщика' на панели настроек сборки для вашей цели. пожав плечами

0 голосов
/ 23 июля 2018

objc_class_ $ textfieldvalidator ссылается на

Компиляция не включает эти скопированные файлы в свой список компиляции. Чтобы исправить эту ошибку выберите файл или папку, затем перейдите на панель «Фазы сборки» и откройте шаг «Компилировать источники», затем нажмите кнопку «+» и добавьте все файлы или папки.

Щелкните правой кнопкой мыши папку проекта, нажмите «Добавить файлы в ...», выберите файл (ы), нажмите кнопку «Параметры» и выберите цель, затем нажмите «Добавить».

...