【问题标题】:iPhone static library linking problemiPhone静态库链接问题
【发布时间】:2010-07-06 15:01:05
【问题描述】:

我在使用我的静态库的应用时遇到问题。这是我的设置:
我有 3 个库、实用程序、共享和杂项。 Share 和 Misc 取决于 Utilities。当我单独编译它们时,它们编译得很好。每个库都在自己的 XCode 项目中。

我想构建一个使用 Utilities 和 Share 中的功能的应用程序,因此我将它们作为直接依赖项添加到项目中。我看到它们列在目标“将二进制文件与库链接”中。我还在编译结果中看到了很多链接错误。这些错误与库中使用的第 3 方代码有关,例如 ASIHTTPRequest。我将此类第 3 方的东西保存在一个地方,我只是在“标题搜索路径”中添加了该目录的路径。

示例错误:

objc-class-ref-to-ASIHTTPRequest in libShare.a(SomethingThatIsInLib.o)

这很令人困惑,因为单独的库编译得很好,但是当我尝试编译应用程序时,它会抛出这样的错误。我做错了什么?

【问题讨论】:

    标签: iphone linker static-libraries


    【解决方案1】:

    将 -all_load 和 -ObjC 标志添加到 Xcode 项目设置中的“Other Linker Flags”。

    【讨论】:

    • 我在库和应用程序中都有这些,它们没有任何区别。
    • 嗯。你能画出你是如何布置所有这些东西的吗?那个时候应该没问题。此外,一些确切的错误消息也会有所帮助。
    • 有 3 个项目:libUtilities、libShare 和应用程序、实用程序和共享使用位于单独文件夹中的一些 3rd 方的东西,路径在“标题搜索路径”中给出,在应用程序中我会喜欢使用实用程序中的功能并共享库
    • 制作静态库的静态库编译在一起是一个主要的链接问题。我建议只将每个组件链接到最终目标。
    猜你喜欢
    • 2018-06-26
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 2022-07-25
    • 2011-09-20
    • 2012-07-26
    相关资源
    最近更新 更多