Подтвердить что ты не робот

Apple Mach-O Linker Errors (20) - Undefined символы для архитектуры armv7

Я получил эти ошибки после добавления "-all_load" в настройке сборки "Другие компоновщики флагов" после добавления "libPusher-combination.a" и его файлов заголовков. Я выполнил инструкции точно до части ввода "-all_load" (в разделе "Использование предварительно скомпилированной статической библиотеки" в "Добавление в проект iOS" ), но у меня получилось 20 ошибок Mach-O Linker.:/Может ли кто-нибудь помочь мне с этим?

Вот ошибки:

Undefined symbols for architecture armv7:
 "_utf8_nextCharSafeBody", referenced from:
  -[SRWebSocket _pumpScanner] in libPusher-combined.a(SRWebSocket.o)
 "_SCError", referenced from:
  -[Reachability startNotifier] in libPusher-combined.a(Reachability.o)
 "_utf8_countTrailBytes", referenced from:
  -[SRWebSocket _pumpScanner] in libPusher-combined.a(SRWebSocket.o)
 "_SCNetworkReachabilitySetDispatchQueue", referenced from:
  -[Reachability startNotifier] in libPusher-combined.a(Reachability.o)
  -[Reachability stopNotifier] in libPusher-combined.a(Reachability.o)
 "_kCFHTTPVersion1_1", referenced from:
  -[SRWebSocket didConnect] in libPusher-combined.a(SRWebSocket.o)
"_CFHTTPMessageIsHeaderComplete", referenced from:
  ___30-[SRWebSocket _readHTTPHeader]_block_invoke_0 in libPusher-combined.a(SRWebSocket.o)
 "_CFHTTPMessageCreateRequest", referenced from:
  -[SRWebSocket didConnect] in libPusher-combined.a(SRWebSocket.o)
 "_SCNetworkReachabilityCreateWithAddress", referenced from:
  +[Reachability reachabilityWithAddress:] in libPusher-combined.a(Reachability.o)
 "_SCErrorString", referenced from:
  -[Reachability startNotifier] in libPusher-combined.a(Reachability.o)
 "_SCNetworkReachabilityCreateWithName", referenced from:
  +[Reachability reachabilityWithHostname:] in libPusher-combined.a(Reachability.o)
 "_CFHTTPMessageCopyAllHeaderFields", referenced from:
  ___30-[SRWebSocket _readHTTPHeader]_block_invoke_0 in libPusher-combined.a(SRWebSocket.o)
 "_CFHTTPMessageGetResponseStatusCode", referenced from:
  -[SRWebSocket _HTTPHeadersDidFinish] in libPusher-combined.a(SRWebSocket.o)
 "_CFHTTPMessageSetHeaderFieldValue", referenced from:
  -[SRWebSocket didConnect] in libPusher-combined.a(SRWebSocket.o)
  ___25-[SRWebSocket didConnect]_block_invoke_0 in libPusher-combined.a(SRWebSocket.o)
 "_CFHTTPMessageCreateEmpty", referenced from:
  -[SRWebSocket _readHTTPHeader] in libPusher-combined.a(SRWebSocket.o)
 "_CFHTTPMessageCopySerializedMessage", referenced from:
  -[SRWebSocket didConnect] in libPusher-combined.a(SRWebSocket.o)
 "_SCNetworkReachabilitySetCallback", referenced from:
  -[Reachability startNotifier] in libPusher-combined.a(Reachability.o)
  -[Reachability stopNotifier] in libPusher-combined.a(Reachability.o)
 "_SCNetworkReachabilityGetFlags", referenced from:
  -[Reachability isReachable] in libPusher-combined.a(Reachability.o)
  -[Reachability isReachableViaWWAN] in libPusher-combined.a(Reachability.o)
  -[Reachability isReachableViaWiFi] in libPusher-combined.a(Reachability.o)
  -[Reachability connectionRequired] in libPusher-combined.a(Reachability.o)
  -[Reachability isConnectionOnDemand] in libPusher-combined.a(Reachability.o)
  -[Reachability isInterventionRequired] in libPusher-combined.a(Reachability.o)
  -[Reachability reachabilityFlags] in libPusher-combined.a(Reachability.o)
  ...
 "_CFHTTPMessageCopyHeaderFieldValue", referenced from:
  -[SRWebSocket _checkHandshake:] in libPusher-combined.a(SRWebSocket.o)
 "_CFHTTPMessageAppendBytes", referenced from:
  ___30-[SRWebSocket _readHTTPHeader]_block_invoke_0 in libPusher-combined.a(SRWebSocket.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Если вам нужна дополнительная информация, просто спросите. Надеюсь, что я не слишком беспокоюсь. Спасибо заранее.

4b9b3361

Ответ 1

Вы можете проверить свою цель → Фаза сборки. существуют ли эти файлы или нет? и если вы работаете для симулятора, сначала вам нужно создать сборку для симулятора этой библиотеки, я думаю, вы используете библиотеку SRWebSocket. Просто откройте этот проект и просто создайте сборку для симулятора и скопируйте файлы из папки создания, а затем добавьте в свой проект и сделайте то же самое для устройства, если вы используете приложение на устройстве.

Ответ 2

Убедитесь, что вы включили следующие рамки (через https://github.com/square/SocketRocket):

Зависимости Framework

Ваш .app должен быть связан с следующими фреймворками /dylibs

libicucore.dylib CFNetwork.framework Security.framework Foundation.framework

Ответ 3

Убедитесь, что у вас также есть -licucore в "Other Linker Flags" на вкладке настроек сборки, как показано на скриншоте:

Other Linker Flags

Ответ 4

Я скопировал полную папку SocketRocket в мое приложение для использования веб-сокетов в моем приложении и связал файлы libicucore.dylib, CFNetwork.framework, Security.framework, Foundation.framework с моим проектом. Это устранило все мои ошибки и предупреждения.

Ответ 5

Для последнего sdk вы должны добавить:

libicucore.tbd 

так как libicucore.dylib больше не присутствует.

Надежность .tbd расширение не для "быть удаленным"?

Ответ 6

В моем случае, когда я добавил SystemConfiguration.framework в проект и проблема...: -)