Linux (ubuntu 12.04) で mysql++ ライブラリ (ラッパー) を使用して、C++ を使用して MySQL データベースに接続したいと考えています。Linux用のxamppを介してmysqlをインストールしましたが、sudo apt-get istall mysql-server
. でmysql++ libを取得しましたsudo apt-get install libmysqlclient15-dev
。
include ステートメントinclude <mysql++/mysql++.h>
は警告を発しませんでしたが、アプリケーションをビルドしようとすると、次のコンパイル エラーが発生します。
In file included from /usr/include/mysql++/connection.h:38:0,
from /usr/include/mysql++/mysql++.h:56,
from /home/bert/Documents/QtProjecten/FGBG/modules/server/mysqldb.h:6,
from /home/bert/Documents/QtProjecten/FGBG/modules/server/mysqldb.cpp:1:
/usr/include/mysql++/common.h:131:28: fatal error: mysql_version.h: No such file or directory
compilation terminated.
実際mysql_version.h
、/usr/include/mysql++
ディレクトリにはありません。これが何を意味するのか、誰にも分かりますか?この問題に関するドキュメントをほとんど見つけることができず、mysql_version.h
-file を から/usr/include/mysql
にコピーしようとさえしました/usr/include/mysql++
。
編集:
- 私のファイルシステムには 2 つの mysql++ ディレクトリがあります:
/usr/local/include/mysql++
と/usr/include/mysql++
. これは問題になる可能性がありますか? - に変更
#include <mysql++/mysql++.h>
しましたが</usr/include/mysql++/mysql++.h>
、動作しませんでした。 - Cmakelist で GXX フラグ (
-DMYSQLPP_MYSQL_HEADERS_BURIED
または) を変更すると、名前空間-I/usr/include/mysql
が認識されなくなります。mysqlpp
これが私のヘッダーファイルのコードです:
#ifndef MYSQLDB_H
#define MYSQLDB_H
#include <mysql++/mysql++.h>
class MySQLDB{
public:
MySQLDB();
~MySQLDB();
bool open(std::string dbname, std::string hostname, std::string username, std::string password);
mysqlpp::StoreQueryResult query(std::string sql);
bool close();
private:
mysqlpp::Connection conn;
};
#endif