我有一个静态库,里面有另一个静态库。
让我们称它们为LibA和LibB。
LibA是面向外部的库,换句话说,LibA在内部调用LibB,而LibB没有外向函数调用。
LibA的标题是extern C,因此名称不会被破坏。
我使用Swift测试了这个库并且它完美无缺。
但是当我尝试在Obj-C项目中使用它时,我得到以下错误:
"_OBJC_CLASS_$_UIResponder", referenced from:
_OBJC_CLASS_$_AppDelegate in AppDelegate.o
"_OBJC_CLASS_$_UIViewController", referenced from:
_OBJC_CLASS_$_ViewController in ViewController.o
"_OBJC_METACLASS_$_UIResponder", referenced from:
_OBJC_METACLASS_$_AppDelegate in AppDelegate.o
"_OBJC_METACLASS_$_UIViewController", referenced from:
_OBJC_METACLASS_$_ViewController in ViewController.o
"_UIApplicationMain", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我确保LibA和LibB都是为x86_64架构而构建的。
非常感谢任何帮助。
编辑:我能够解决这个问题。在Build Phases下,我不得不将UIKit.framework添加到Link Binary with Libraries。这修复了错误并允许我使用我的库。谢谢你的帮助!
答案 0 :(得分:0)
将UIKit.framework
添加到您应用的目标。