这个问题的动机是我试图让LDAP功能与iPhone应用程序一起工作,这是我正在尝试部分论文的项目。
当我开发应用程序时,我使用了作为Mac OS X一部分的ldap.framework框架。这在模拟器中运行良好,但是当我尝试在设备上获取应用程序时,它告诉我我是不允许使用此框架。
经过一番研究后,我发现我可以使用arm架构构建openldap,并将静态库添加到我的应用程序中,用于我的设备。
我最终设法通过设置here所提及的变量并使用以下命令来编译configure和build 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'文件?
如果有人能给我一个文档指针或在下一阶段阐明任何亮点,我将非常感激。
非常感谢, ADE
PS。我还在www.greenpasta.com的博客上谈到了这个过程。
答案 0 :(得分:2)
我已经为iPhoneOS 2.2构建LDAP客户端做了同样的事情。您只需将.a拖动到“与库链接”构建阶段即可。我建议使用库的常规(非_r)版本,除非你特别需要重新插入你的ldap东西(我不推荐)。您还可以将.h添加到项目中,这通常是访问它们的最简单方法。
答案 1 :(得分:1)
只需将.a文件拖到Xcode项目中,然后选择“将文件复制到项目中”。我不熟悉OpenLDAP,但我认为_r版本只是一个线程安全版本。我建议使用它而不是复制另一个。您可能不应该将这两个文件复制到Xcode中,否则会出现链接错误。
然后对定义OpenLDAP的客户端API的.h文件执行相同的操作 - 再次我不确定这些是什么,但我相信您可以轻松找到。
我建议在资源下的Xcode组中组织.a和.h文件。
在源代码中包含头文件,你应该好好去。
答案 2 :(得分:0)
您可能还需要在链接器命令中添加-lldap(在构建设置窗格中)。