2

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

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

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

我最终设法通过设置此处提到的变量并使用以下命令来编译配置和构建 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”文件?

如果有人能给我一个指向文档的指针或阐明下一阶段的任何信息,我将不胜感激。

非常感谢,阿德

附言。我还在我的博客www.greenpasta.com上谈到了这个过程。

4

3 回答 3

2

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

于 2009-05-26T13:44:53.443 回答
1

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

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

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

在您的源代码中包含头文件,您应该一切顺利。

于 2009-04-20T10:57:49.027 回答
0

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

于 2009-05-07T16:52:33.857 回答