【发布时间】:2016-03-26 21:00:02
【问题描述】:
今天,我想问你一个关于构建驱动程序的问题。我有这样的小型 QT 数据库:
mainDB = QSqlDatabase::addDatabase("QMYSQL");
mainDB.setHostName("127.0.0.1");
mainDB.setPort(3306);
mainDB.setDatabaseName("Database_Name");
mainDB.setUserName("root"); //create editors account later
mainDB.setPassword("Password"); //so on :)
if(mainDB.open())
qDebug() << "mainDB is open";
else
qDebug() << "mainDB error";
但是,然后我尝试编译它,我收到一个错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
我用谷歌搜索了一下这个东西,并意识到我还没有使用 MySQL 为 QT 构建驱动程序。所以,我在我的 cmd 中输入了这个:
C:\Qt\5.6\Src\qtbase\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH += C:\Program Files\MySQL\MySQL Server 5.7\include" "LIBS+=C:\Program Files\MySQL\MySQL Server 5.7\lib\libmysql.lib" mysql.pro
(在 includepath 中,我使用了 MySQL 服务器中所有包含的路径(例如,一百个 h. 文件),在 LIBS 中,我使用了 libmysql 文件的路径)。它编译得很好,我输入了
mingw32-make
完成我的构建。但是它捕获了一个错误:
In file included from main.cpp:36:0:
../../../sql/drivers/mysql/qsql_mysql_p.h:55:19: fatal error: mysql.h: No
such file or directory
#include <mysql.h>
^
compilation terminated.
Makefile.Release:466: recipe for target '.obj/release/main.o' failed
mingw32-make[1]: *** [.obj/release/main.o] Error 1
mingw32-make[1]: Leaving directory 'C:/Qt/5.6/Src/qtbase/src/plugins/sqldrivers/
mysql'
makefile:38: recipe for target 'release-all' failed
mingw32-make: *** [release-all] Error 2
结果,我的 C:\Qt\5.6\Src\qtbase\plugins\sqldrivers 是空的。
所以,我想知道,如何解决?
而且,是的,我确实包含了 C:\Qt\5.6\mingw49_32\bin;C:\Qt\Tools\mingw492_32\bin;系统中的目录作为“PATH”变量。
提前谢谢你!
【问题讨论】: