MySQL C++ コネクタを使用してデータベースに接続しようとしています。ライブラリを追加すると、ソース コードは必要なすべての #include ステートメントで正しくコンパイルされます。私が使用しているコードは次のとおりです。
#include <stdlib.h>
#include <iostream>
#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
using namespace std;
int main(void)
{
using namespace sql;
Driver *driver;
Connection *con;
driver = get_driver_instance();
con = driver -> connect("tcp://127.0.0.1:3306/test", "test", "test");
}
コードは例からそのまま引用されており、正しく動作するはずです。エラーがスローされる最後の "driver -> connect" 行にあるため、コードを大幅に短縮しました。私のエラーメッセージは次のとおりです。
*** glibc detected *** /home/username/NetBeansProjects/mysql/dist/Release/GNU-Linux-x86/mysql:
free(): invalid pointer: 0x091dd468 ***
Linux Mint Lisa を使用しており、最新バージョンの MySQL を実行し、NetBeans 7.1 を IDE として使用しています。前述のように、コードは正しくコンパイルされ、エラーが発生するのはこの最後の接続行です。別の接続メカニズムに関するヘルプや推奨事項をいただければ幸いです。
アップデート
接続が定義されている Driver クラスのコードを次に示します。
class CPPCONN_PUBLIC_FUNC Driver
{
protected:
virtual ~Driver() {}
public:
// Attempts to make a database connection to the given URL.
virtual Connection * connect(const sql::SQLString& hostName, const sql::SQLString& userName, const sql::SQLString& password) = 0;
virtual Connection * connect(ConnectOptionsMap & options) = 0;
...
そこには何も見えません...私の謙虚な意見では...