【发布时间】:2016-11-11 17:15:09
【问题描述】:
我想创建一个 iOS 库以导入多个项目。 我尝试遵循多个(很多!)教程和指南,并在这里回答但没有解决我的问题。
我使用的是 xcode 8.1 (macOS sierra),创建库的步骤如下:
- new->project->cocoa touch 静态库
- 将我所有的源代码添加到项目中
任务已经完成:
- 我已将“仅构建活动架构”标志切换为否
- 我已添加到“其他链接标志”-static -objC
现在按下 cmd+B 选择模拟器作为目标
转到产品->选择 .a->在查找器中显示
库显示切片是: 'fat 文件中的架构:./libPhoneNumber.a 是:i386 x86_64'
以下步骤显示了我如何使用该库: - 将 .a 拖到现有项目中 - 将库的所有.h拖到现有项目中 - 添加了#import "libPhoneNumber.h"(文件存在)
使用模拟器作为目标点击 cmd+B 我总是获得以下内容:
架构 x86_64 的未定义符号: “_OBJC_CLASS_$_MYPhoneNumberUtil”,引用自: AppDelegate.o 中的 objc-class-ref ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
所以,现在显然 x86_64 切片存在了。
我快疯了,似乎每个指南都不起作用。 还有什么想法吗?
谢谢大家
【问题讨论】:
-
您的目标的构建设置中有库的路径吗? (图书馆搜索路径)
-
我的搜索路径没问题。谢谢。我发现如果项目是使用 new->project->cocoa touch 静态库生成的,则该库可以工作,但是如果我创建另一种类型的项目并添加静态库目标,则该目标将不会生成有效的库。知道为什么吗?
标签: ios static-libraries linker-errors xcode8 ios10