Sharekit - 架构 i386 的未定义符号:

Posted

技术标签:

【中文标题】Sharekit - 架构 i386 的未定义符号:【英文标题】:Sharekit - ndefined symbols for architecture i386: 【发布时间】:2013-04-04 14:16:34 【问题描述】:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_EvernoteSession", referenced from:
  objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_SHK", referenced from:
  objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_SHKConfiguration", referenced from:
  objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_SHKFacebook", referenced from:
  objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_SHKGooglePlus", referenced from:
  objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我用谷歌搜索了很多,但找不到适合我的anithyng。我已经按照安装指南一步一步地进行操作,我已经三重检查了我已经添加了所有需要的框架,我阅读并尝试了这个"symbol(s) not found for architecture i386" problem using ShareKit,但仍然收到这个错误......请帮助!

【问题讨论】:

【参考方案1】:

经过 12 个小时的疯狂后,我意识到我的文件夹树错了。您可以通过 git(对于像我这样的图标推送者也很容易)或通过浏览器下载文件,但您必须注意以下结果:

Project Root
 |
 |-Submodules
   |
   |-ShareKit
      |
      |-Submodules
         |
         |-All the subfolder with files (notice that if you download it as .zip from github, the folder will be created but they are EMPTY!

如果您与此有任何不同,您将遇到巨大且不可预测的问题!

感谢大家的帮助。

PS:我建议尝试将 ShareKit 添加到一个新的空项目中,只是为了熟悉它并保留您的真实项目。

【讨论】:

【参考方案2】:

首先告诉我您是否必须将任何framework 作为复制粘贴?在大多数情况下,都会产生此类问题。

通常当您的类.m 文件未存储/放在Compile Sources 下时会发生这种类型的错误

在这种情况下,您需要手动将此.m 文件添加到Compile Sources

以下步骤描述如何手动将.m文件放入Compile Sources

Select Project Form Project Manager
  |
  | 
  Targets
       |
       |
     Build Phases
          |
          |
        Compile Sources
                |
                |
        Click on '+' button and add .m file in it

这是如何将文件手动放入Compile Sources的步骤。

编辑:

我不确定,但我认为您忘记添加 CoreData.framework 先添加它。 请参阅此问题How to "add existing frameworks" in Xcode 4? 了解如何添加框架

【讨论】:

【参考方案3】:

试试这个:

1) 清理代码(按 Cmd + Shift + K)

2) 退出 Xcode 并重新启动

3) 确保在 Build Phases 和 Compile Sources 中添加了 SHKFacebook.m、SHKConfiguration.m 等文件。

4) 确保 Sharekit 中的所有子模块都已下载...

希望这会有所帮助...

【讨论】:

以上是关于Sharekit - 架构 i386 的未定义符号:的主要内容,如果未能解决你的问题,请参考以下文章

架构 i386 的未定义符号:“_SCNetworkReachabilitySetCallback”

架构 i386 的未定义符号 - Lipo 错误?

“架构 i386 的未定义符号”问题

架构 i386 的未定义符号:_FlutterMethodNotImplemented

架构 i386 的未定义符号:用于 OpenCV 项目

架构 i386 的未定义符号:“_OBJC_CLASS_$_RCTBundleURLProvider”