最近这几天试着使用connector/c++连接mysql数据库,下载下来之后跑官方的例程,发现抛出了莫名其妙的错误:
Connector/C++ standalone program example...
Creating session on tcp://127.0.0.1 ...
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
后来弄来弄去,发现加上_GLIBCXX_USE_CXX11_ABI=0的宏定义之后问题解决,查了一下这句宏定义的作用,gcc5之后标准库的api有修改,_GLIBCXX_USE_CXX11_ABI=0是让编译器使用旧版的api
查看了一下自己gcc的版本:
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
版本是7.5的,问题解决,记录下来以免下次犯错