栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【原创】undefined reference to `std::

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【原创】undefined reference to `std::

 

解决编译器报错:

undefined reference to `std::__cxx11::basic_string, std::allocator >::empty() const'

undefined reference to `std::__cxx11::basic_string, std::allocator >::~basic_string()'

...等等这类报错

有效解决方案:

1.【最可能的错误原因】首先检查 设备运行的程序的编译命令 和 它所链接的库的编译命令 是否一致

比如我在遇到这个问题的时候

网络库的编译命令:arm-linux-gnueabihf-9.1.0-

而运行设备的代码里面用的编译命令是:arm-buildroot-linux-uclibcgnueabihf-

由于编译命令不一致,导致c++11的编译出来的接口不适配

2.如果编译命令一样,请考虑设备运行的程序的makefile或编译环境和它所链接的库的版本是否一样

比如boost库的版本你在其他库链接boost的时候,用了boost1.6.0;但你的设备运行环境里的编译选项所链接的boost库却是boost1.6.7,那么这时候你就需要从服务器上下载一致的库版本

3.单纯的自己在写编译命令的时候忘记加c++11的编译选项了 -std=c++11

那么解决方案就更简单了直接加上这个编译选项

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/947736.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号