0

查看以下代码:

#if 1
    mysqlpp::Connection conn(false);
    conn.connect(FACE_DB_NAME, "localhost","root", "root"); 
#endif

m_pconn = new mysqlpp::Connection(false);
m_pconn->connect(FACE_DB_NAME, "localhost","root", "root");

如果“1”是#defined,并且 Connection 对象在堆栈上,则两个代码块都会执行(conn.connect 和 m_pconn->connect)

如果“0”是#defined,并且第二个 Connection 对象是动态分配的,我会在 m_pconn->connect 上遇到分段错误。

有任何想法吗?

4

1 回答 1

0

问题是原始应用程序是使用以下方法编译的:

_GLIBCXX_USE_CXX11_ABI=0

然而,mysql++ 不是。

当我有机会时,需要更深入地了解这一点以了解 CRT 的问题。

于 2016-04-17T21:19:44.577 回答