Xcode - ошибка связывания _OBJC_CLASS _ $ _ "className" после замены файлов классов - PullRequest
10 голосов
/ 25 марта 2012

Введение

В текущем проекте, над которым я работаю, мы используем ChartBoost SDK для рекламы в стиле popop. Мы уже давно используем этот SDK без каких-либо проблем. Это очень простая библиотека, которая по существу имеет только 1 заголовочный файл с именем "ChartBoost.h", а также файл "libChartBoost.a".

Теперь мы только что обновили файлы SDK новой версией. Я просто удалил старые файлы SDK из проекта с помощью «Переместить в корзину». После этого я просто переместил новые файлы SDK в проект, добавив их ссылки.

Проблема

Сразу после этого и компиляции проекта я внезапно получаю 2 ошибки компоновки. Вот скриншот этого:

Screenshot

Я перепробовал почти все, что мог придумать, чтобы попытаться устранить ошибку. Я очистил проект и папку проекта, а также попытался удалить производные данные проекта через окно органайзера.

Я почти уверен, что это как-то связано с компоновщиком, пытающимся использовать ссылки старых файлов? Но я не уверен, как мне добиться того, чтобы удалить эти недействительные ссылки.

Есть здесь кто-нибудь, кто знает, как решить эту проблему?

[РЕДАКТИРОВАТЬ] Связывание ChartBoost.a с двоичным файлом

Итак, я попытался связать файл ChartBoost.a с двоичным файлом через вкладку «Фазы сборки». Это избавило от двух исходных ошибок, хотя обнаружило 8 новых, показанных на скриншоте ниже:

Linking errors 2

Я не совсем уверен, что, к сожалению, означают ошибки связывания :( У кого-нибудь есть идеи?

1 Ответ

14 голосов
/ 26 марта 2012

В цели вашего приложения посмотрите в «Фазы сборки», в фазе «Связать двоичные файлы с библиотеками».

Это должно включать libChartBoost.a.

Если этого не произойдет, нажмите кнопку + и выберите libChartBoost.a.

Я почти уверен, что это как-то связано с компоновщиком, пытающимся использовать ссылки старых файлов?

Нет. Вы удалили старые файлы из проекта, и это включало ссылку на этапе сборки «Link Binary With Libraries». Когда вы добавили новые файлы в проект, вы не добавили эту ссылку обратно.

...