QSqlDatabase:Mac OS上未加载QMYSQL驱动程序

时间:2016-07-16 22:08:04

标签: c++ mysql qt c++11 qt5

我已经在Windows和一些Linux版本上解决了这个问题,现在是Mac时间。这一切都从以下几点开始:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

然后解决方案应该或多或少地指向以下链接,即:

MySQL for Qt on Mac

QSqlDatabase: QMYSQL driver not loaded on Xubuntu 16.04 64bits

QSqlDatabase: QMYSQL driver not loaded on Ubuntu 15.04 64bits

最后应该生成一个新版本的(调试和发布)lib,然后用新的替换旧版本,从现在开始一切都会有效。

我刚刚这样做了,问题是新的lib(在~Qt/5.7/Src/qtbase/plugins/sqldrivers中找到),一个刚编译的

~/Qt/5.7/clang_64/bin/qmake "INCLUDEPATH += /usr/local/mysql-5.6.17-osx10.7-x86_64/include/" "LIBS += -L/usr/local/mysql-5.6.17-osx10.7-x86_64/lib/"
make

与旧版本相同(在~Qt/5.7/clang_64/plugins/sqldrivers中找到)。我的意思是,刚刚编译的lib与已经存在的lib相同。我仍然得到QSqlDatabase: QMYSQL driver not loaded

有人可以在这里说些什么吗?发生了什么事?

过了一段时间,我发现(here

install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~/Qt/5.7/clang_64/plugins/sqldrivers/libqsqlmysql_debug.dylib

install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~/Qt/5.7/clang_64/plugins/sqldrivers/libqsqlmysql.dylib

帮助。

我对此有一些了解,但我会向在该领域更有知识的人提供详细信息。

1 个答案:

答案 0 :(得分:0)

关键部分是:

~/Qt/5.8/clang_64/bin/qmake "INCLUDEPATH += /usr/local/mysql-5.6.17-osx10.7-x86_64/include/" "LIBS += -L/usr/local/mysql-5.6.17-osx10.7-x86_64/lib/" mysql.pro

make

然后:

cp ~/Qt/5.8/Src/qtbase/plugins/sqldrivers/ ~/Qt/5.8/clang_64/plugins/sqldrivers/