在iPhone SDK 3.0中链接静态库

问题描述:

我有一个严重依赖OpenCV库的iPhone应用程序;因此,我编译了这个库的静态版本,以便与我的应用程序一起使用。这样做的说明相对简单:Using OpenCV on iPhone。我遇到的唯一问题是将连接器标记STANDARD_C_PLUS_PLUS_LIBRARY_TYPE设置为“standard”。该应用程序编译和运行在OS 2.0和2.2下完美。在iPhone SDK 3.0中链接静态库

升级到SDK 3.0并尝试重新编译我的应用程序后,我遇到了此链接程序标志的问题。

LD:当链接我得到这个错误没有找到-lstdC++库 - 静态

这也是有趣的是,我的系统上“的libstdC++ - 静”的存在似乎每一个的iPhoneOS和iPhoneSimulator下SDK除iPhoneOS.platform/SDKs/iPhoneOS3.0.sk外。以下是搜索结果:

$ 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开发论坛上找到任何答案。我真的很感激,如果有人能在这里阐明一些亮光。

谢谢!

+0

什么版本的libstdC++在OS 3.x中? – 2009-09-09 23:37:27

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

这真是令人困惑,我唯一能想到的就是/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk不在您的图书馆搜索路径中,但那不太可能。

+0

我试图为iPhoneOS编译,而不是模拟器。它需要为两者工作。 – pix0r 2009-07-07 23:15:55

+0

你是对的,那只是一个滑过我,iPhone的图书馆在哪里?它没有出现在你的列表中...... – hhafez 2009-07-08 00:13:24