Для типов int
используйте:
int myInteger = 1;
String myString = Integer.toString(myInteger);
Для типов Integer
используйте:
Integer myIntegerObject = new Integer(1);
String myString = myIntegerObject.toString();
Похоже, что вы отсутствуете, включая IOBluetooth.framework в своем проекте. Вы можете добавить его по:
-Нажмите на свой проект в левом верхнем углу левой панели (синий значок).
. На средней панели щелкните вкладку «Фазы построения».
-Включить «Связывание двоичных файлов с библиотеками», нажмите кнопку «плюс».
-Закройте IOBluetooth.framework из списка и нажмите Добавить.
[/g0]
[/g1]
Это позволит убедиться, что определения IOBluetooth.framework найдены компоновщиком , Вы можете видеть, что фреймворк является членом вашей цели, щелкнув фреймворк в левой панели и увидев целевое членство структуры в правой панели (обратите внимание, что я переместил структуру в группе Frameworks для целей организации):
[/g2]
Я обнаружил, что это также может произойти, если вы перетащите папку с файлами Objective-C в свой проект. Если эта папка кажется синей, я думаю, что она указывает, что она не связана должным образом. Вы можете проверить это (если вы используете контроль версий), потому что всякий раз, когда вы добавляете новые файлы, файл pbxproj должен обновляться ссылками на эти новые файлы. Однако вы можете обнаружить, что после того, как вы добавили папку, которую файл pbxproj не изменил (и, следовательно, есть ошибка связывания). Таким образом, вы получите автоматическое завершение работы, и он найдет классы, которые вы импортировали, но когда это происходит, чтобы фактически создать образ, с которым он не справляется с этим кодом ошибки.
Решение состоит в том, чтобы не добавлять папку, а скорее добавьте файлы. Сделайте это, и вы увидите обновление файла pbxproj, и оно должно исправить эту ошибку.
Это также предполагает, что вы сделали то, что было предложено выше, и правильно связали все правильные рамки.
У меня была такая же ошибка, потому что вместо удаления файла я просто удалял ссылки на него. Поиск файла в Finder и его удаление помогли.
UPD
Apple требует использовать архитектуру arm64. Не используйте библиотеки x32 в вашем проекте
Итак, ниже ответ неверен!
Старый ответ
Новый Xcode 5.1 устанавливает архитектуру armv7, armv7s и arm64.
И иногда ошибка «сбой сборки» Неопределенные символы для архитектуры x86_64 «» могут быть вызваны этим. Потому что некоторые библиотеки (а не Apple) были скомпилированы для x32 изначально и не поддерживают x64.
Итак, вам нужно изменить «Архитектуры» для вашего целевого проекта, например
NB. Если вы используете Cocoapods - вы должны сделать то же самое для цели «Pods».
[/g0]
Valid Architectures
и Architectures
.
– Aleksey Potapov
23 April 2014 в 15:33
Я также видел эту ошибку в Xcode 7.2, когда производные данные повреждаются (в моем случае я прервал сборку и подозревал, что это была основная причина).
Итак, если другие решения (в частности, Chris's и BraveS, которые, как я подозреваю, более вероятны) не подходят вашей проблеме, попробуйте удалить производные данные (выберите: Окно / Проекты / Производные данные -> Удалить) и перестроить.
(Добавлен для справки другими - Я знаю, что на исходный вопрос был дан правильный ответ.)
Неопределенные символы для архитектуры x86_64: «_OBJC_CLASS _ $ _ xxx», на которые ссылается: objc-class-ref в yyy.o
blockquote>Это обычно означает, что вы вызываете «xxx» "(это может быть каркас или класс) из класса" yyy ". Компилятор не может найти «xxx», чтобы произошла эта ошибка.
Вам нужно добавить отсутствующие файлы (в данном случае «xxx»), щелкнув правой кнопкой мыши по папке проекта в окне навигатора и коснитесь «Добавить файлы в» YourProjectName "" вариант.
Всплывающее окно откроет ваши файлы проекта в Finder. Там вы можете увидеть недостающие файлы и просто добавить их в свой проект. Не забудьте проверить флажок «Копировать предметы в случае необходимости». Удачи !!
Для меня это произошло после конфликта слиянием.
Я попытался очистить и удалить папку сборки, но ни одна из них не помогла. Эта проблема продолжалась независимо. Затем я повторно связал ссылку, удалив группы, которые были проблематичными и повторно добавлены в проект, и это сработало.
Если вы получаете эту ошибку при попытке ссылки на файл C, сначала дважды проверьте имена функций для опечаток. Затем дважды проверьте, что вы не пытаетесь вызвать функцию C из среды C ++ / Objective-C ++ без использования конструкции extern C {}
. Я рвал волосы, потому что у меня был класс, который был в файле .mm, который пытался вызвать функции C. Это не работает, потому что в C ++ символы искажены. Фактически вы можете увидеть конкретные символы, созданные с помощью инструмента nm. Terminal на путь к файлам .o и запустите nm -g
в файле, который вызывает символ, и тот, который должен иметь этот символ, и вы должны увидеть, совпадают ли они или нет, что может дать ключ к ошибке .
nm -g file.o
Вы можете проверить символы C ++, которые были запятыми:
nm -gC file.o
В моем случае я создал настраиваемую инфраструктуру с целевым назначением для развертывания, установленным в 9.1, но цель развертывания моего приложения была ниже, что поддерживает 8.1. Минимизируйте пользовательскую инфраструктуру. Цель развертывания решила мою проблему.
Я пробовал практически все, но моя проблема оказалась остатками предыдущей сборки cocoapods. Для меня это было:
rm -Rf Pods; pod install
Также может быть #include <windows.h>
в .c файле, который вы пытаетесь скомпилировать.
Я знаю, что это старый вопрос, но сегодня он получил ту же ошибку и не работал над этими решениями.
Исправил его, установив опцию:
Project -> Architecture -> Build Active Architecture Only
на Да
и компиляция и сборка проекта должным образом
В моем случае это была не библиотека, это были некоторые классы ..
Неопределенные символы для архитектуры x86_64: "_OBJC_CLASS _ $ _ ClassNmae", на которые ссылается: objc-class-ref in SomeClassName ".
d: символ не найден для архитектуры x86_64
clang: ошибка: команда компоновщика не удалась с кодом выхода 1 (используйте -v для просмотра вызова)
blockquote>Решение У меня было несколько целей в Xcode с несколькими схемами (Production, Dev и т. д.). Некоторые из моих недавно добавленных реализаций (Class.m) отсутствовали в
Xcode-> Targets-> Build Phases-> Compile Sources
blockquote>Поэтому мне пришлось добавить их вручную.
, тогда я смог бы скомпилировать и успешно выполнить сборку
При обновлении до Xcode 7.1 вы можете увидеть этот тип ошибки, и он не может быть разрешен ни одним из приведенных выше ответов. Одним из симптомов в моем случае было то, что приложение работает на устройстве не в симуляторе. Вероятно, вы увидите огромное количество ошибок, связанных со значительной частью всех используемых вами фреймворков.
Исправление на самом деле довольно простое. Вам просто нужно удалить запись из параметра «Пути поиска в Ракурсе», найденного в разделе TARGETS> Build Settings> Search Paths (убедитесь, что выбрана вкладка «Все»)
Если вы видите другую запись (помимо $ (унаследованной)) для своей основной цели или вашей целевой цели, просто удалите неисправный путь из всех целей и перестройте.
В Xcode 9.0b5 вы можете столкнуться с этим, потому что Xcode 9.0b5 имеет ошибку в нем, где, когда вы добавляете исходный код, он не соблюдает целевые настройки. Вы должны войти и установить для каждого файла вручную следующие слова:
Я также столкнулся с той же проблемой, описанные выше методы не будут работать. Я случайно удалил файлы в следующем каталоге на нем.
Или
~ / Библиотека / Разработчик / Xcode / DerivedData /
~/Library/Developer/Xcode/DerivedData/
. Через CLI вы можете очистить каталог следующим образом: rm -rf ~/Library/Developer/Xcode/DerivedData/
– Bramus
22 September 2016 в 12:43