在iPhone SDK 3.0中链接静态库

7
我有一个iPhone应用程序,它严重依赖于OpenCV库。因此,我已经编译了一个静态版本的这个库以便将其包含在我的应用程序中。做这件事的说明相对简单:在iPhone上使用OpenCV。我遇到的唯一问题是设置链接器标志STANDARD_C_PLUS_PLUS_LIBRARY_TYPE为"standard"。该应用程序在OS 2.0和2.2下编译和运行完美。
升级到SDK 3.0并尝试重新编译我的应用程序后,我遇到了这个链接器标志的问题。在链接时,我遇到了以下错误:ld: library not found for -lstdc++-static
有趣的是,在我的系统上,“libstdc++-static”似乎在除iPhoneOS.platform/SDKs/iPhoneOS3.0.sk之外的每个iPhoneOS和iPhoneSimulator SDK下都存在。以下是搜索结果:
$ locate libstdc++-static
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/lib/libstdc++-static.a
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/usr/lib/libstdc++-static.a
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/lib/libstdc++-static.a
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.sdk/usr/lib/libstdc++-static.a
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.0.sdk/usr/lib/libstdc++-static.a
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.1.sdk/usr/lib/libstdc++-static.a
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.1.sdk/usr/lib/libstdc++-static.a
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.sdk/usr/lib/libstdc++-static.a
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/lib/libstdc++-static.a
/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libstdc++-static.a
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libstdc++-static.a
/usr/lib/libstdc++-static.a

我感到困惑,无法在Google或iPhone开发论坛上找到任何答案。如果有人能在这里解决我的问题,我将非常感激。

谢谢!


OS 3.x 中的 libstdc++ 版本是多少? - Ben Collins
2个回答

1

猜测一下 - 尝试将其中一个目录添加到“构建属性”中的“库搜索路径”选项中?


这个方法可行!谢谢你!我之前试着从旧的SDK复制文件,但那没用(虽然我不确定是否需要执行类似于ldconfig的操作来重新扫描该目录,所以我正要重启电脑)。 - pix0r
太好了!我最初考虑了LD_LIBRARY_PATH,然后想到它可能在属性中。 - John

0

这真是令人困惑,我唯一能想到的可能是/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk不在你的库搜索路径中,但这几乎不太可能。


我试图编译iPhoneOS,而不是模拟器。它需要同时适用于两者。 - pix0r
你说得对,那只是我疏忽了,那么iPhone的库在哪里呢?它没有出现在你的列表中... - hhafez
没错,那就是问题所在 ;) 看起来苹果在SDK 3.0中遗漏了它 - 可能只是一个错误。结果证明,2.2版本的库在3.0中完全可以正常使用。 - pix0r

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接