无法在 iOS 项目中使用库,该项目正在另一个具有相同设置的项目中工作

Cannot use a library in iOS project which is working in another project with same settings

我被一个荒谬的基本简单问题困住了,这让我抓狂了好几天!

故事是这样的:

  1. 我有一个第三方库在我使用它时阻止我的项目构建。
  2. 我有另一个示例项目,其中使用了这个库并且正在成功构建。
  3. 我已经检查了 Xcode 中 "Project Build Settings""Target Build Settings" 的所有(字面上的所有)构建设置,一切看起来都一样。
  4. 这是两个项目的构建设置的屏幕截图:

工作项目:

不工作的项目:

  1. 这是链接器错误的屏幕截图:
  2. 我搜索并查看了所有 lipo:can't open input file 错误问题和 ld: symbol(s) not found for architecture armv7 错误问题,但 none 的答案似乎对我有用。请不要只参考 Google 搜索结果。

  3. 我已经尝试清理项目、删除文件并重新添加到目标、同步两个项目上的链接框架、删除派生数据、更改 build active architecture only setting 以及建议的许多其他事情其他问题。

  4. 由于同一个库文件在同一个设备和Xcode和SDK上编译链接成功,请不要提出"requesting Vendor for a newer version of library which is compatible with arm64 or etc".[=21之类的建议=]

  5. 我是 运行 Xcode 7.1 OS X El Capitan,如果需要仔细查看项目,我什至可以提供 TeamViewer 访问权限。

非常感谢任何帮助,我真的坚持这个。

提前谢谢你。

Xcode 仅在 linking 检测到使用 C++ 编译的源文件时包含标准 C++ 库。如果库需要使用 libc++(或类似的)解析其某些符号,这可能会导致 link 问题。

解决方法是在项目中创建一个空的 .cpp 文件来欺骗 Xcode。 (我更喜欢将 "real" class 制作成 .mm,因为重构从未对 Objective-C++ 起作用。)