簡體   English   中英

Xcode:架構 arm64 錯誤的未定義符號

[英]Xcode: Undefined symbols for architecture arm64 error

在我的 Xcode 5 項目中,我使用 RestKit 進行 REST 通信。 模擬器一切正常,但生成 ipa 文件時,出現以下錯誤:

ld: warning: ignoring file /Users/joseph/Library/Developer/Xcode/DerivedData/XXXXXXXXXX-gdwdekevxtdfivfpsnmyykeqhulk/Build/Products/Debug-iphoneos/libRestKit.a, missing required architecture arm64 in file /Users/joseph/Library/Developer/Xcode/DerivedData/XXXXXXXXXXXXX-gdwdekevxtdfivfpsnmyykeqhulk/Build/Products/Debug-iphoneos/libRestKit.a (2 slices)
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_RKRelationshipMapping", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKObjectMapping", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKRequestDescriptor", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKObjectManager", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKResponseDescriptor", referenced from:
      objc-class-ref in classname-xxx.o

  "_RKStatusCodeIndexSetForClass", referenced from:
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
  "_RKMIMETypeJSON", referenced from:
      -[classname-xxxinitWithURLBase:timeOut:] in classname-xxx.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation).

如果在 RestKit 項目中,我通過標准體系結構(包括 64 位)(ARMv7、armv7s、arm64)選項在“構建設置”->“體系結構”中更改“標准體系結構(ARMv7,armv7s)”,則一切都可以正常編譯。 這是正確的嗎?,沒有帶來任何結果,我必須更改一些其他設置。

  1. 選擇 Restkit 項目
  2. 僅構建活動架構設置為No

僅構建主動架構

這只是意味着您正在為 64 位(iPhone 5s)構建您的項目,無需擔心,請參閱此鏈接以獲取更多解釋: Xcode 5 和 iOS 7:架構和有效架構

只需將 RestKit 項目 -> 構建設置 -> 架構更改為標准架構(armv7、armv7s、arm64)。 之后,一切都應該工作。

這對我有用:

IOS SDK 9.3

進入 app.xcodeproj 的構建設置有效架構​​:armv7 armv7s 構建活動架構:否

清潔和建造,為我工作。

就我而言,我忘記在我的項目中添加 sqlite 庫。 從鏈接框架和庫添加庫后,構建成功。

我在實現 AVPictureInPictureController 時遇到了相同/類似的問題,問題是我沒有在我的項目中鏈接 AVKit 框架。

錯誤消息是:

架構 armv7 的未定義符號:

"_OBJC_CLASS_$_AVPictureInPictureController", 
referenced from:
   objc-class-ref in yourTarget.a(yourObject.o)
ld: symbol(s) not found for architecture armv7

clang:錯誤:鏈接器命令失敗,退出代碼為 1(使用 -v 查看調用) 解決方案:

轉到您的項目 選擇您的目標 然后,轉到 Build Phases Open Link Binary With Libraries 最后,只需添加 + AVKit 框架/任何其他框架。 希望這可以幫助其他人遇到我遇到的類似問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM