首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mysql_version.h构建应用程序时找不到mysql++

使用mysql_version.h构建应用程序时找不到mysql++
EN

Stack Overflow用户
提问于 2013-08-15 21:28:59
回答 4查看 6.9K关注 0票数 3

我想用MySQL (ubuntu12.04)中的mysql++库(包装器)与c++连接到我的mysql++数据库。我通过xampp安装了mysql,但也用sudo apt-get istall mysql-server进行了尝试。我得到了mysql++库和sudo apt-get install libmysqlclient15-dev

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命名空间了。

以下是我的头文件的代码:

代码语言:javascript
复制
#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
EN

回答 4

Stack Overflow用户

发布于 2015-04-24 15:53:18

检查是否可以使用

代码语言:javascript
复制
dpkg -L libmysql++-dev

如果是,即如果您有libmysqlpp.a,使用-lmysqlpp链接它,如下所示,

代码语言:javascript
复制
 g++ sm_cpp.cpp -o test -I/usr/include/mysql++ -I/usr/include/mysql -lmysqlpp

看起来不错。链接器搜索库的标准目录列表,它实际上是一个名为liblibrary.a ary.a的文件。然后,链接器使用该文件,就好像它是按名称精确指定的一样。-没有这类档案或目录

票数 3
EN

Stack Overflow用户

发布于 2014-03-03 19:32:18

mysql_version.h是mysql包的一部分,而不是mysqlpp包。只需包含/usr/ include /mysql或usr/local/include/mysql取决于将mysql文件放入IDE的位置。简单的解决办法(:

票数 1
EN

Stack Overflow用户

发布于 2015-01-10 23:13:59

使用-DMYSQLPP_MYSQL_HEADERS_BURIED标志编译,或者直接包含mysql目录。即尝试以下方法之一:

代码语言:javascript
复制
g++ test.cpp -o test -DMYSQLPP_MYSQL_HEADERS_BURIED

g++ test.cpp -o test -I/usr/include/mysql/

这两个都对我有用。

更多信息可以在这个错误报告中找到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18262193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档