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