“找不到架构x86_64的符号”由于C函数

时间:2016-11-22 07:18:02

标签: c++ ios objective-c c xcode

我在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,则应用程序编译成功。

有没有人知道这方面的解决方案?

1 个答案:

答案 0 :(得分:0)

想出问题是,podspec文件中没有正确设置第三方pod的依赖项,该文件用于将我自己的框架目标用作app目标的pod。因此,添加正确的依赖项并执行pod安装(以及干净)之后修复了此问题:

  s.dependency "ThirdpartyLib/Subspec"

我错过了亚种。