我想用 c++ 和 linux(ubuntu 12.04)中的 mysql++ 库(包装器)连接到我的 MySQL 数据库。我通过 xampp for linux 安装了 mysql,但也尝试使用sudo apt-get istall mysql-server
. 我得到了 mysql++ 库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++
.
编辑:
- 我的文件系统中有两个 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