Ответ 1
Судя по всему, ваш класс "Формат" вовлечен в проблему. Проверьте объявление этого класса, особенно если вы делали это внутри другого класса, вы, вероятно, забыли @implementation или что-то подобное.
Внезапно Xcode бросил мне эту ошибку во время компиляции:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Format", referenced from:
objc-class-ref in WOExerciseListViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
После некоторых исследований я могу понять, что библиотека, которую я использую, несовместима с 64-разрядной версией. Но это очень странно, так как я работаю с теми же библиотеками, по крайней мере, неделю, не имея одной проблемы компиляции за это время. Эти две библиотеки состоят всего из нескольких классов, и когда я удалил их из своего проекта, я получил ту же проблему. Поскольку я никогда не создавал библиотеки самостоятельно, я понятия не имею, как я могу найти, что те, которые я использую, совместимы с 64-битными (?) Я также попробовал следующие изменения для архитектур под целевой панелью:
Но ни одно из этих изменений не работает. Пожалуйста, кто-то знает об этом? Спасибо
Судя по всему, ваш класс "Формат" вовлечен в проблему. Проверьте объявление этого класса, особенно если вы делали это внутри другого класса, вы, вероятно, забыли @implementation или что-то подобное.
Проверьте, включен ли этот файл в сборку фаз → Скомпилированные источники
Убедитесь, что WSExerciseListViewController является целевым членом; это сработало для меня!
Да, я думаю, что библиотека, которую вы используете, несовместима с 64-битной версией, но вы можете решить проблему -
Просто перейдите в "Настройки сборки" > "Архитектуры" и замените $(ARCHS_STANDARD)
на $(ARCHS_STANDARD_32_BIT)
Итак, ваш xcode создаст ваш проект с 32-разрядной поддерживаемой версией.
Я только что получил эту ошибку, когда я открыл (довольно) старый проект, созданный в Xcode 4 ~ ish, в Xcode 6.4. Хотя связанные рамки были видны на боковой панели проекта, я упустил из виду, что на вкладке Фазы сборки цели не было связанных библиотек. Как только я исправил это, он скомпилировался нормально.
Оказалось, что я забыл написать свою часть @implementation
.
Я просто не связывал библиотеки в разделе "Связывание двоичных файлов с библиотеками".
Я решил ту же проблему, перейдя на Xcode Build Settings и в Architectures, я изменил стандартную архитектуру Xcode 6.1.1 для: -
$(ARCHS_STANDARD_32_BIT)
Такая же ошибка, когда я копировал/вставлял класс и забыл переименовать его в файл .m.
Я решил проблему, удалив ссылку на файл и добавив ее снова в проект. В моем случае это работает.
У меня была точно такая же ошибка, и я решил ее, перезапустив xcode.
Для меня проблема возникла после обновления svn, рассматриваемый файл был добавлен в папку проектов, но он никогда не появлялся в xcode (9.3.1) - пока я не перезапустил его.
этот параметр работал у меня:
Удалите $(ARCHS_STANDARD)
и добавьте $(ARCHS_STANDARD_32_BIT)
.