iOS和Xcode:自定义框架链接错误,未定义的符号

时间:2012-08-22 08:42:02

标签: ios xcode frameworks

我使用自定义静态框架来打包我的模块,例如A,B,C ......,而A是基础层,所以B& C依赖于A,它们都在A中使用一个名为“Semaphore”的符号。

现在我将A,B,C添加到我的应用程序“DemoX”中,DemoX仅使用B& C,直接链接时出错。

  

更改:DemoX依赖于直接使用A的静态库“libM”。

Undefined symbols for architecture i386:

"_OBJC_CLASS_$_Semaphore", referenced from:
      objc-class-ref in libM.a
      objc-class-ref in B
      objc-class-ref in C
ld: symbol(s) not found for architecture i386

实际上,我用“nm”命令来显示A中的符号,它有“_OBJC_CLASS _ $ _ Semaphore”。 那么,如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:3)

我解决了这个问题。

这都是我的错,这个错误只发生在发布中,因为我用“默认隐藏的符号”编译A是,所以其他人看不到A所有的符号。把它设置为NO,一切都很好。