抛出“std::length_error”实例后调用 C++ 终止,what(): basic_string::_M_create
Posted
技术标签:
【中文标题】抛出“std::length_error”实例后调用 C++ 终止,what(): basic_string::_M_create【英文标题】:C++ terminate called after throwing an instance of 'std::length_error', what(): basic_string::_M_create 【发布时间】:2016-06-28 07:42:03 【问题描述】:在 Ubuntu 16.04 下运行时出现以下错误。
抛出 'std::length_error' 的实例后调用 C++ 终止,what(): basic_string::_M_create
当我在 Ubuntu 15.04 下运行时,代码运行良好。
gdb 跟踪我已将其隔离为以下代码: http://imgur.com/ibvFx4B
连接周围的某个地方会产生错误。
#define DBHOST "tcp://127.0.0.1:3306"
#define USER "root"
#define PASSWORD " "
#define DATABASE "db_mmofps"
void CDBmysql::Connect()
m_driver = mysql::get_mysql_driver_instance();
m_con = m_driver->connect(DBHOST, USER, PASSWORD);
m_con->setSchema(DATABASE);
任何想法为什么它会抛出错误?这很简单,我确信我忽略了。
【问题讨论】:
您是否尝试设置除空格以外的密码? 密码应该为空,我将 mysql 设置为 root,密码为空。当我在没有空格的情况下将其设为“”时,这是同样的错误。谢谢。 我建议将其转换为 1234,例如,以确保错误不是来自格式错误的密码 尝试使用通用密码重新安装,但仍然出现 length_error 错误。 【参考方案1】:解决了这个问题。 libmysqlcppconn 库需要从 Ubuntu 15.04 中的工作库中替换。希望这可以省去一些人的头疼。
【讨论】:
以上是关于抛出“std::length_error”实例后调用 C++ 终止,what(): basic_string::_M_create的主要内容,如果未能解决你的问题,请参考以下文章
关于在抛出 'std::length_error' 实例后调用终止
在抛出 'std::length_error' what(): basic_string::_S_create 的实例后调用终止
抛出“std::length_error”实例后调用 C++ 终止,what(): basic_string::_M_create
c++ 中的错误:“在抛出 'std::length_error'what() 的实例后调用终止:basic_string::_M_replace_aux”
理解错误“在抛出 'std::length_error'what() 实例后调用终止:basic_string::_S_create Aborted (core dumped)”