如何解决在将静态库添加到一个项目中时出错
| 我正在尝试使用此示例在Xcode项目中学习创建和使用静态库。但是我不断收到此错误:ld: warning: ignoring file /Developer/MathTest/iCodeBlogsMathLibrary/libICodeMathUtils.a,missing required architecture i386 in file
Undefined symbols for architecture i386:
\"_OBJC_CLASS_$_MathFunctions\",referenced from:
objc-class-ref in MathTestViewController.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
我可能会缺少什么?
解决方法
看来您正在构建与i386体系结构相对应的模拟器,但您仅与iphone(手臂)库链接。
为了解决这个问题,您应该同时为i386和arm编译库libICodeMathUtils.a。
看完该教程后,您将遵循:在项目中集成静态库的更好方法是定义一个依赖项。你可以看看这个S.O. Xcode 4的相关文章,Xcode 3的相关文章(问题本身给出了步骤)。
您还有另一个选择是分别为i386(模拟器)和arm(设备)构建库,然后使用命令行工具
lipo
创建可以在MathTest项目中链接的胖库。选中man lipo
可以使用该工具。
编辑:关于您的评论
我的静态库没有显示在Target Dependencies中!
您是否已将静态库从随附的项目树中拖动到目标? Xcode 3的步骤是:
将库项目添加为包含的项目;
在包含的项目中找到静态库,并将其拖到您的主要目标上,并将其添加为链接框架;
最后,在目标信息窗格中,您可以添加依赖项。
如果将目标添加到项目Scheme中,则Xcode4似乎能够自动找出依赖性。您可以执行以下操作:编辑方案->构建->然后从工作区添加目标。另请参阅此S.O.题。
, 就我而言
>
找到“其他链接器标志”构建设置。如果此构建设置的值不存在,则将其添加-ObjC标志
<<
https://developer.apple.com/library/ios/technotes/iOSStaticLibraries/Articles/configuration.html#//apple_ref/doc/uid/TP40012554-CH3-SW1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。