iOS导入c++语言的静态库之后编译不过,先要检查是否导入了libstdc++

Posted Hakim_Fan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS导入c++语言的静态库之后编译不过,先要检查是否导入了libstdc++相关的知识,希望对你有一定的参考价值。

ios项目中引入c++库,编译链接时报如下错:

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

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

"std::string::push_back(char)", referenced from:

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

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

很明显,以上都是stdc++标准库函数。

检查Build Phases->Link Binary With Libraries 也包含了libstdc++.dylib库

 

最终调试发现:libstdc++.dylib实际不是一个库,而是一个快捷方式。

实际使用时,可能出现找不到库的情况,也可能找得到,人品问题;

然后,解决方案里,直接把libstdc++.dylib换成libstdc++.6.0.9.dylib即可

Build Succeeded~

以上是关于iOS导入c++语言的静态库之后编译不过,先要检查是否导入了libstdc++的主要内容,如果未能解决你的问题,请参考以下文章

iOS静态库引用

linux下intel的mkl编程代码,怎么样编译。C++和C语言代码

Golang入门及开发环境配置

iOS开发,如何打包静态库.a文件

编译型语言解释型语言静态类型语言动态类型语言概念与区别

[Makefile应用] --- Makefile编译动态库并使用