当我使用三部分库编译iOS项目时,我得到了"Apple Mach-O链接器错误"

Qij*_*jin 7 linker mach-o ios

我从三个部分添加了一个名为"*.a"的库,并在我的XCode项目中添加了它的头文件.在我编译项目时,有许多"Apple Mach-O链接器错误".这里的错误信息:

"std::ios_base::failure::~failure()", referenced from:

  "std::_List_node_base::unhook()", referenced from:

  "std::string::find(char const*, unsigned long, unsigned long) const", referenced from:

  "std::ios_base::failure::failure(std::string const&)", referenced from:

  "std::_List_node_base::hook(std::_List_node_base*)", referenced from:

  "std::invalid_argument::invalid_argument(std::string const&)", referenced from:

  "std::runtime_error::runtime_error(std::string const&)", referenced from:

  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned long, char, std::allocator<char> const&)", referenced from:

  "std::string::assign(char const*, unsigned long)", referenced from:

  "std::istream::operator>>(int&)", referenced from:

  "vtable for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >", referenced from:

  "vtable for std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >", referenced from:

  "std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(std::_Ios_Openmode)", referenced from:

  "vtable for std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >", referenced from:

  "std::string::_Rep::_M_destroy(std::allocator<char> const&)", referenced from:

  "std::ios_base::Init::Init()", referenced from:

  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)", referenced from:

  "std::ostream& std::ostream::_M_insert<double>(double)", referenced from:

  "std::string::append(unsigned long, char)", referenced from:

  "std::string::_M_leak_hard()", referenced from:

  "std::_Rb_tree_decrement(std::_Rb_tree_node_base*)", referenced from:

  "std::string::find(char, unsigned long) const", referenced from:

  "std::string::find_last_not_of(char const*, unsigned long, unsigned long) const", referenced from:

  "std::string::replace(unsigned long, unsigned long, char const*, unsigned long)", referenced from:

  "std::string::reserve(unsigned long)", referenced from:

  "std::string::_M_mutate(unsigned long, unsigned long, unsigned long)", referenced from:

  "VTT for std::basic_ifstream<char, std::char_traits<char> >", referenced from:

  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()", referenced from:

  "non-virtual thunk to std::basic_istream<char, std::char_traits<char> >::~basic_istream()", referenced from:

  "std::string::_Rep::_S_terminal", referenced from:

  "std::string::_Rep::_S_max_size", referenced from:

  "std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)", referenced from:

  "std::string::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long)", referenced from:

  "std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:

  "std::__throw_length_error(char const*)", referenced from:

  "std::string::append(char const*, unsigned long)", referenced from:

  "std::basic_istream<char, std::char_traits<char> >::~basic_istream()", referenced from:

  "std::string::compare(char const*) const", referenced from:

  "std::basic_filebuf<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode)", referenced from:

  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&, unsigned long, unsigned long)", referenced from:

  "std::basic_filebuf<char, std::char_traits<char> >::close()", referenced from:

  "std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::basic_istringstream(std::string const&, std::_Ios_Openmode)", referenced from:

  "std::ios_base::Init::~Init()", referenced from:

  "vtable for std::basic_streambuf<char, std::char_traits<char> >", referenced from:

  "std::ios_base::~ios_base()", referenced from:

  "std::_Rb_tree_increment(std::_Rb_tree_node_base const*)", referenced from:

  "std::ostream::operator<<(int)", referenced from:

  "std::_Rb_tree_increment(std::_Rb_tree_node_base*)", referenced from:

  "std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const", referenced from:

  "std::istream& std::istream::_M_extract<float>(float&)", referenced from:

  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:

  "std::string::append(std::string const&)", referenced from:

  "std::string::find_first_of(char const*, unsigned long, unsigned long) const", referenced from:

  "std::__throw_out_of_range(char const*)", referenced from:

  "std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream()", referenced from:

  "std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)", referenced from:

  "std::locale::~locale()", referenced from:

  "std::string::_Rep::_S_empty_rep_storage", referenced from:

  "std::string::find_first_not_of(char const*, unsigned long, unsigned long) const", referenced from:

  "std::string::assign(std::string const&)", referenced from:

  "std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream()", referenced from:

clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

任何人帮我解决这个问题.谢谢!

Phi*_*lls 6

看起来这个库使用C++.尝试将libstdc ++添加到目标.

  • 尝试添加libstdc ++.6 (6认同)