我被一个荒谬的基本简单问题困住了,这让我发疯了好几天!
故事是这样的:
- 我有一个第三方库,在我使用它时会阻止我的项目构建。
- 我有另一个示例项目,其中使用了这个库并且正在成功构建。
- 我已经检查了 Xcode 中
“Project Build Settings”
和“Target Build Settings”
的所有(字面上的所有)build设置,一切看起来都一样。 - 这是两个项目的build设置的屏幕截图:
- 这是链接器错误的屏幕截图:
我搜索并查看了所有
lipo:can't open input file
错误问题和ld: symbol(s) not found for architecture armv7
错误问题,但似乎没有一个答案对我有用。请不要只引用 Google 搜索结果。我已尝试清理项目、删除并重新添加目标文件、同步两个项目上的链接框架、删除派生数据、更改
仅构建事件架构设置
,以及许多其他其他问题的建议。由于相同的库文件正在同一设备、Xcode 和 SDK 上成功编译和链接,请不要提出“请求供应商提供与 arm64 等兼容的更新版本的库”之类的建议.
我在 OS X El Capitan 上运行 Xcode 7.1,如果需要仔细查看项目,我什至可以提供 TeamViewer Access。
非常感谢任何帮助,我真的坚持这一点。
提前谢谢你。
最佳答案
如果 Xcode 检测到使用 C++ 编译的源文件,则它仅在链接时包含标准 C++ 库。如果库需要使用 libc++(或类似工具)解析其某些符号,这可能会导致链接问题。
解决方法是在项目中创建一个空的 .cpp 文件来欺骗 Xcode。 (我更喜欢将“真正的”类制作成 .mm,因为重构从未对 Objective-C++ 起作用。)
关于ios - 无法在 iOS 项目中使用库,该库在具有相同设置的另一个项目中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34117291/