ios - 在 iOS 项目中包含我的静态库时出错

标签 ios xcode static-libraries xcode4.2

我正在尝试在 iOS 项目中包含静态库。 我导入了 .a 文件和每个相关的 .h 文件,但随后出现此错误:

ld: warning: ignoring file /Users/alexis/Library/Developer/Xcode/DerivedData/PlazappPartnerWorkspace-            cdrmloavlcqouugawmtqywiinqne/Build/Products/Debug-iphoneos/libPlazappPartnerLib.a, file was built for archive which is not the architecture being linked (i386)
Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_LauncherViewController", 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)

我猜想存在架构类型的问题,但我不明白为什么也不知道如何解决它。 有人可以向我解释一下并告诉我如何解决吗?谢谢!

最佳答案

看来您的库是为在设备(arm 架构)中运行而构建的,并且您尝试在模拟器(i386 架构)中使用它。检查您的库build设置。它们应该与您的项目build设置相匹配。

或者更好的是,创建一个用于开发目的的胖库lipo命令是你的 friend 。

要验证库中当前的架构:(在终端中)


    cd <path to library folder> <i># in you case: /Users/alexis/Library/Developer/Xcode/DerivedData/PlazappPartnerWorkspace-            cdrmloavlcqouugawmtqywiinqne/Build/Products/Debug-iphoneos</i>
    lipo -info libPlazappPartnerLib.a

输出应如下所示:

Architectures in the fat file: libPlazappPartnerLib.a are: <b>armv6 armv7</b>

它们应该与您正在构建的目标设备或模拟器相匹配。

关于ios - 在 iOS 项目中包含我的静态库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7977230/

相关文章:

html - CSS 在某些 iPhone 上异常崩溃

objective-c - SBJSON,检查数据是否加载完成

c++ - 在 .cpp 文件上链接静态库

ios - 从 CocoaTouch 库调用 NSLog

ios - NSMutable 对象 : removeAllObjects vs. 包含对象速度

ios - 仪器的测试结果目录位置

ios - 如何将对象从一个 View 发送到另一个 View ?

iphone - 架构armv7的 undefined symbol ?

iphone - 如何使用常量解码位图

visual-studio - 为什么 C++ 静态库项目没有链接器设置?