【问题标题】:Adding a static library to an iPhone project将静态库添加到 iPhone 项目
【发布时间】:2010-10-20 12:38:16
【问题描述】:

这个问题的动机是我试图让 LDAP 函数与 iPhone 应用程序一起工作,这是我在我的论文的一部分中尝试的一个项目。

当我开发应用程序时,我使用了 Mac OS X 中的 ldap.framework 框架。这在模拟器中运行良好,但是当我现在尝试在设备上获取应用程序时,它告诉我我正在不允许使用这个框架。

经过一番研究,我发现我可以使用 arm 架构构建 openldap,并将静态库添加到我的应用程序中,以用于我的设备。

我最终通过设置变量here 并使用以下命令来编译配置和构建openldap...

Ade$ ./configure CC=$DEVROOT/usr/bin/arm-apple-darwin9-gcc-4.0.1 \
LD=$DEVROOT/usr/bin/ld --host=arm-apple-darwin --with-yielding_select=yes
Ade$ make depend
Ade$ make

我被告知我要查找的文件的扩展名为“.a”,因此我搜索了一个提及 ldap 的“.a”文件...

Ade$ sudo find / -name *ldap*.a
Password:
/Users/Ade/Desktop/openldap-2.4.16/libraries/libldap/.libs/libldap.a
/Users/Ade/Desktop/openldap-2.4.16/libraries/libldap_r/.libs/libldap_r.a

所以我假设这些是我需要的文件?

我的问题是我接下来要做什么?我知道我需要将库添加到 Xcode 项目中,并且可能还要添加大量“.h”文件?

如果有人可以给我一个指向文档或阐明下一阶段的任何线索,我将非常感激。

非常感谢, 阿德

ps。我还在我的博客www.greenpasta.com 上讨论了这个过程。

【问题讨论】:

    标签: iphone xcode static-libraries openldap


    【解决方案1】:

    我已经为 iPhoneOS 2.2 构建了一个 LDAP 客户端。您只需将 .a 拖入“与库的链接”构建阶段。我建议使用库的常规(非 _r)版本,除非您特别需要对 ldap 内容进行重入(我不推荐)。您还可以将 .h 添加到您的项目中,这通常是访问它们的最简单方法。

    【讨论】:

      【解决方案2】:

      您可能还需要将 -lldap 添加到链接器命令(在构建设置窗格中)。

      【讨论】:

        【解决方案3】:

        只需将 .a 文件拖到 Xcode 项目中,然后选择“将文件复制到项目中”即可。我不熟悉 OpenLDAP,但我认为 _r 版本只是一个线程安全版本。我建议使用它而不是复制另一个。您可能不应该将这两个文件都复制到 Xcode 中,否则会出现链接错误。

        然后对定义 OpenLDAP 的客户端 API 的 .h 文件执行相同的操作 - 我再次不确定这些文件是哪些,但我相信您可以轻松找到。

        我建议将 .a 和 .h 文件一起组织到资源下的 Xcode 组中。

        在你的源代码中包含头文件,你应该很高兴。

        【讨论】:

        • 您好,我尝试了这种方法,但没有进一步接近... Apple 讨论板上正在进行另一个讨论...
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多