我在Xcode 8.1中遇到以下编译错误,其中一个iOS应用程序项目使用框架目标,而该框架目标又使用包含一些C函数的cocoapod:
架构x86_64的未定义符号: “_OBJC_CLASS _ $ _ CUsingClass”,引自: libSDKFile.a中的objc-class-ref(SessionManager.o) ld:找不到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我已经用尽了所有找到的解决方案(构建设置/体系结构等),C代码甚至使用extern“C”指令(在C头文件中):
#ifdef __cplusplus
#define CODE_EXPORT extern "C"
#else
#define CODE_EXPORT extern
#endif
CODE_EXPORT unsigned int myCFunction(const char *src, char *dst, unsigned int dst_size);
使用cocoapod lib和C文件的框架目标成功编译但是app目标失败,给出了上述错误。如果我注释掉C函数include,则应用程序编译成功。
有没有人知道这方面的解决方案?
答案 0 :(得分:0)
想出问题是,podspec文件中没有正确设置第三方pod的依赖项,该文件用于将我自己的框架目标用作app目标的pod。因此,添加正确的依赖项并执行pod安装(以及干净)之后修复了此问题:
s.dependency "ThirdpartyLib/Subspec"
我错过了亚种。