iOS 开发引入静态库之后报错

今天引入之前同事封装的一个工具静态库之后项目报错内容如下:

Undefined symbol: std::__1::__vector_base_common<true>::__throw_length_error() const
Undefined symbol: operator delete(void*)
Undefined symbol: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::resize(unsigned long, char)
Undefined symbol: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::append(char const*)
Undefined symbol: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()
Undefined symbol: ___gxx_personality_v0
Undefined symbol: operator new(unsigned long)
Undefined symbol: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(char const*, unsigned long)

刚开始没有仔细看报错内容,以为是项目没有引入该静态库,仔细确认了一下静态库已经引入,并且删除引入之后再次引入还是报这个错。看来不是因为没有项目没有引入该静态库引起的,仔细分析的了一下报错内容,看情况是由于静态库里的代码实现,依赖于其他库。看报错的内容,像是C++的报错,于是乎在 Build Phases -> Linked Binary With Libraries 中添加 libc++.tbd 。编译顺利通过~,记录一下,希望能帮助到其他童鞋
屏幕快照 2020-01-08 上午11.22.08.png

推荐阅读更多精彩内容