在iPhone SDK 3.0中链接静态库
我有一个严重依赖OpenCV库的iPhone应用程序;因此,我已经编译了这个库的静态版本,以便与我的应用程序一起使用。执行此操作的说明相对简单:。我遇到的唯一问题是将链接器标志在iPhone SDK 3.0中链接静态库,iphone,cocoa-touch,xcode,Iphone,Cocoa Touch,Xcode,我有一个严重依赖OpenCV库的iPhone应用程序;因此,我已经编译了这个库的静态版本,以便与我的应用程序一起使用。执行此操作的说明相对简单:。我遇到的唯一问题是将链接器标志STANDARD\u C\u PLUS\u PLUS\u LIBRARY\u TYPE设置为“STANDARD”。该应用程序在OS 2.0和2.2下编译并运行良好 升级到SDK 3.0并尝试重新编译我的应用程序后,我遇到了此链接器标志的问题。我在链接时遇到此错误: ld:找不到-lstdc++-static的库 同样有趣的
STANDARD\u C\u PLUS\u PLUS\u LIBRARY\u TYPE
设置为“STANDARD
”。该应用程序在OS 2.0和2.2下编译并运行良好
升级到SDK 3.0并尝试重新编译我的应用程序后,我遇到了此链接器标志的问题。我在链接时遇到此错误:
ld:找不到-lstdc++-static的库
同样有趣的是,在我的系统上,除了iPhoneOS.platform/SDKs/iPhoneOS3.0.sk之外,似乎每个iPhoneOS和iPhoneSimulator SDK都有“libstdc++-static”。以下是搜索结果:
$ 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
我很困惑,在谷歌或iPhone开发者论坛上都找不到任何答案。如果有人能在这里透露一些情况,我将不胜感激
谢谢 这真是令人费解,我唯一能想到的是
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk
不在您的库搜索路径中,但这不太可能。只是猜测-尝试将其中一个目录添加到构建属性中的“库搜索路径”选项中?这很有效!谢谢我试图从一个旧的SDK复制该文件,但没有成功(尽管我不确定是否需要执行与ldconfig
等效的操作来重新扫描该目录,所以我准备重新启动)太棒了!我开始考虑LD_LIBRARY_PATH,然后认为它可能在属性中。我试图为iPhone操作系统而不是模拟器编译。你是对的,那只是从我身边溜走了一下,那么iphone的库在哪里呢?它不会出现在您的列表中……对,这就是问题所在;)似乎苹果在SDK 3.0中遗漏了它——可能只是一个错误。事实证明,该库的2.2版本在3.0中运行良好。OS3.x中的libstdc++版本是什么?