我正在将我的项目从windows server 2003(32位)上的qt4.8.4移植到win7(64位)上的qt5.3.1,我静态构建qt源代码,并动态构建qsqlmysql,但我的代码无法加载mysql qt驱动程序。错误如下所示:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers:()我的代码如下:
db = QSqlDatabase::addDatabase("QMYSQL", "*****");
db.setHostName("*****");
db.setDatabaseName("*****");
db.setUserName("*****");
db.setPassword("*****");当我在注册表中搜索" qmysql“时,我什么也得不到,似乎qmysql驱动程序没有注册。
有什么想法吗?
发布于 2017-07-31 06:40:37
默认配置只会给你sqlite支持,也许ODBC会在windows上被自动检测到。您将需要指定sql支持,并且可能还需要提供库和包含路径。例如(使用mardiadbclient For mysql):
Pre Qt 5.8:
-qt-sql-mysql -L E:\msys64\mingw64\lib -l mysql -I E:\msys64\mingw64\include\mariadb
Qt 5.8后:
-sql-mysql MYSQL_INCDIR=E:\msys64\mingw64\include\mariadb MYSQL_LIBDIR=E:\msys64\mingw64\lib MYSQL_LIBS="-l mysqlclient“-L E:\msys64\mingw64\lib
发布于 2017-07-31 08:36:54
在qt4.8.4中,当你静态链接qsqlmysql时,你应该这样写: Q_IMPORT_PLUGIN(qsqlmysql),但是在qt5.3.1中,名称发生了变化,你应该这样写这个宏: Q_IMPORT_PLUGIN(QMYSQLDriverPlugin)
这就是为什么我总是得到一个未解决的外部..。错误。更改名称后,我可以成功链接mysql。
https://stackoverflow.com/questions/45405146
复制相似问题