数据库
首页 > 数据库> > c-使用mysql构建应用程序时找不到mysql_version.h

c-使用mysql构建应用程序时找不到mysql_version.h

作者:互联网

我想使用Linux(ubuntu 12.04)中的mysql库(包装器)使用c连接到我的MySQL数据库.我通过用于Linux的xampp安装了mysql,但也尝试使用sudo apt-get istall mysql-server进行了尝试.我通过sudo apt-get install libmysqlclient15-dev获得了mysql lib.

include语句include< mysql / mysql .h>没有给出警告,但是当我尝试构建我的应用程序时,这是编译错误:

在/usr/include / mysql /connection.h:38:0包含的文件中,
                 从/usr/include / mysql / mysql .h:56,
                 从/home/bert/Documents/QtProjecten/FGBG/modules/server/mysqldb.h:6,
                 从/home/bert/Documents/QtProjecten/FGBG/modules/server/mysqldb.cpp:1:
/usr/include / mysql /common.h:131:28:致命错误:mysql_version.h:没有这样的文件或目录
编译终止.

实际上,/usr/include / mysql目录中没有mysql_version.h.有人知道这意味着什么吗?我几乎找不到关于此事的任何文档,甚至尝试将mysql_version.h文件从/usr/include / mysql复制到/usr/include / mysql.

编辑:

>我的文件系统中有两个mysql dirs:/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

解决方法:

检查是否可以使用以下方式链接mysqlpp名称空间:

dpkg -L libmysql++-dev

如果是,即如果您具有libmysqlpp.a,请使用-lmysqlpp进行链接,如下所示:

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

它会工作.链接器在标准目录列表中搜索该库,该库实际上是一个名为liblibrary.a的文件.链接器然后使用该文件,就好像它是通过名称精确指定的一样. include <mysql++.h> – No such file or directory

标签:mysql-2,mysql,c-4
来源: https://codeday.me/bug/20191122/2063338.html