将静态库添加到iPhone项目

时间:2009-04-20 08:42:19

标签: iphone xcode static-libraries openldap

这个问题的动机是我试图让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的博客上谈到了这个过程。

3 个答案:

答案 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(在构建设置窗格中)。