Xcode创建&使用带有链接错误的静态库

时间:2011-11-09 09:40:18

标签: objective-c ios xcode4 linker

我试图在我的项目中使用EGOPhotoViewer作为静态库,这样我就不需要将所有源代码直接包含在我的项目中。

我已经forked项目并创建了一个可可触摸静态库来生成libEGOPhoto.a

对演示项目进行了修改以利用静态库而不是源代码,因此我删除了库类并将静态库添加为Framework。另一个堆栈答案建议将其添加为已编译的源,但这也不起作用。

我得到的错误与链接有关,如下所示:

  

ld:警告:忽略文件   /Users/pbrooks/Library/Developer/Xcode/DerivedData/EGOPhotoViewer-chniasxgqzkdbwhjedastrvwlmek/Build/Products/Debug-iphoneos/libEGOPhotoViewer.a,   文件是为存档而构建的,而不是链接的体系结构   (I386)

     

架构i386的未定义符号:
  " _OBJC_CLASS _ $ _ EGOPhotoViewController",引自:         RootViewController.o中的objc-class-ref         DetailViewController.o中的objc-class-ref         RootViewController_iPhone.o中的objc-class-ref ld:找不到架构i386的符号

     

clang:错误:链接器命令失败,退出代码为1(使用-v查看   调用)

有关获取此链接的任何提示吗?

1 个答案:

答案 0 :(得分:4)

你正在尝试编译模拟器(这需要你的mac中的intel处理器的i386架构)。您的库可能是针对用于iOS设备的ARMv6 / ARMv7架构编译的。您可以直接在设备上运行它。如果您还想在模拟器上运行,则应根据您是要定位iOS设备还是模拟器(或创建包含两种架构的universal lib)来创建不同的库和链接。