iOS条件链接静态库

时间:2011-11-28 15:25:44

标签: ios xcode linker static-libraries armv7

我有一个为armv7和i386编译的胖静态库。在我的iPhone / iPad项目中一切正常,但我只能在armv7设备上安装我的应用程序,所以iPhone 3gs及以上......

有一种方法可以在armv6上运行我的项目,这样我就可以在ipod touch和旧的iphone版本上安装它(如果我禁用了armv7库的话)。

我试试这个:

#ifdef _ARM_ARCH_7
... //include and use of armv7 library
#else
... //not include armv7 library
#endif

但是当我编译我的项目时,我有链接错误...

Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang++以退出代码1失败

所以有一种方法可以在所有类型的设备上运行我的应用程序,但在编译armv7时链接一个特定的库???

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您需要弱化该库。打开构建设置并查找其他链接器标志。您需要添加两个条目,第一个是“-weak_library”,第二个是库文件的路径(您可能需要搜索传递给链接器的内容以查找它是什么)。

它们需要按此顺序排列,因为此列表按照它们呈现的顺序转换为链接器的参数。

相关问题