【问题标题】:Xcode creating & using static libraries with linking errorsXcode 创建和使用带有链接错误的静态库
【发布时间】:2011-11-09 09:40:17
【问题描述】:

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

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

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

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

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.old 中的 objc-class-ref:未找到架构 i386 的符号

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

关于正确链接的任何提示?

【问题讨论】:

    标签: objective-c ios xcode4 linker


    【解决方案1】:

    您正在尝试为模拟器进行编译(这需要您的 mac 中的英特尔处理器使用 i386 架构)。您的库可能是为用于 iOS 设备的 ARMv6/ARMv7 架构编译的。您也许可以在设备上按原样运行它。如果你还想在模拟器上运行,你应该根据你是针对 iOS 设备还是模拟器来制作不同的库和链接(或者制作一个包含两种架构的universal lib)。

    【讨论】:

    • 我希望我只是在做一个模拟器库,但可惜不是。我还没有完成通用库,但感谢您的链接,我会试一试。
    • 感谢文章的指针,它让我朝着正确的方向前进,当然你的预测是正确的。刚刚必须克服图书馆的 BAD_ACCESS 问题。
    • 感谢您的提示。文章的作者说文章已经过时了。新文章在这里:db-in.com/blog/2011/07/universal-framework-iphone-ios-2-0
    猜你喜欢
    • 2013-01-20
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    相关资源
    最近更新 更多