2009-01-05 42 views
4

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

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

如果我删除了库的依赖性,项目建立/运行良好。

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

我确定它的东西很简单,但有谁遇到类似的问题从iPhone模拟器移动到设备?我设法创建了新的项目(一个用于应用程序,一个用于静态库),并成功让它们在iPhone或模拟器上运行。但是我有一个很奇怪的问题......对于每个特定的项目,我都无法使它与设备和模拟器一起工作......我已经仔细检查了构建设置,确保正在引用的库适用于匹配构建设置(我相信),但我无法解决这些链接错误。

我认为我必须做的事情非常错误......所有的苹果文档都说'它的超级简单 - 一次点击',但是这给我带来了很多问题。

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

回答

7

查看my answer to a similar question以获得可能有所帮助的文章链接。有一篇有趣的文章link

+0

谢谢,我设法使用那篇文章得到一个新的测试项目,虽然我似乎仍然有静态库在单独的xcode项目中创建时的问题克拉。 – Akusete 2009-01-05 23:59:33

1

最终我意识到问题所在。

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

除了库搜索路径(在构建配置中),所有的罚款仍然有模拟器目录首先列出,我认为它会被找到并使用,而不是设备。

这也解释了为什么我能够使每个设置都与新项目一起工作,但只是在设置之间发生了变化。

它是一个简单而愚蠢的问题,但一个让我有些悲伤和时间。我仍然不知道如何正确设置目标相关的构建设置,但至少如果有人遇到类似的问题需要注意。

1

我创建了如何创建和使用静态库一个完整的教程,这种教程包括也由苹果通知的方法,也许人们会发现它有用:

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

优势这种方法是它根据你的项目设置自动重新编译库(所以没有设备/模拟器构建的问题)

+0

链接已死 – srgtuszy 2011-12-31 11:41:01