4

我有两个项目,一个 Cocoa iPhone 应用程序和一个它使用的静态库。

我已经在 iPhone 模拟器上成功测试了它,但是当我尝试将它部署到我的 iPhone 设备时,我得到(未找到符号)链接错误。

如果我删除库的依赖项,则项目构建/运行良好。

我确保所有构建设置都设置为 iPhoneOS 而不是模拟器。

我确定它很简单,但是有没有人在从 iPhone 模拟器转移到设备时遇到过类似的问题?

--编辑:我已经成功地创建了新项目(一个用于应用程序,一个用于静态库),并成功地让它们在 iPhone 或模拟器上运行。但我有一个非常奇怪的问题......对于每个特定的项目,我无法让它同时适用于设备和模拟器......我已经仔细检查了构建设置,确保引用的库是用于匹配的构建设置(我相信),但我无法解决这些链接错误。

我想我一定是做错了什么……所有的苹果文档都说“超级简单——一键”,但这给我带来了很多问题。

这可能与 xCode 构建设置有关,但我似乎无法理解为什么选择不同的构建平台和重建库不起作用。

4

3 回答 3

7

查看我对类似问题的回答,以获得可能有帮助的文章的链接。有一篇有趣文章的链接。

于 2009-01-05T23:32:03.977 回答
1

最终我意识到问题出在哪里。

我将设备目标从模拟器更改为 iPhone 设备,然后删除旧的(模拟器)静态库并附加新的(设备)库。

一切都很好,除了库搜索路径(在构建配置中)仍然首先列出了模拟器目录,我认为这会导致它被找到并使用而不是设备。

这也解释了为什么我能够使每个设置都适用于新项目,但只是在设置之间进行更改时遇到了麻烦。

这是一个简单而愚蠢的问题,但却给我带来了一些悲伤和时间。我仍然不确定如何正确设置依赖于目标的构建设置,但至少如果有人遇到类似问题,它需要注意。

于 2009-01-12T23:33:08.690 回答
1

我已经创建了一个关于如何创建和使用静态库的完整教程,本教程涵盖了苹果公司也建议的方法,也许人们会觉得它很有用:

http://www.sodeso.nl/?p=822

这种方法的优点是它会根据您的项目设置自动重新编译库(因此设备/模拟器构建没有问题)

于 2010-05-03T06:54:33.753 回答