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

Posted

技术标签:

【中文标题】QSqlDatabase:Mac OS 上未加载 QMYSQL 驱动程序【英文标题】:QSqlDatabase: QMYSQL driver not loaded on Mac OS 【发布时间】:2016-11-19 20:14:47 【问题描述】:

我已经在 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,然后用新版本替换旧版本,从现在开始一切都会正常。

我只是这样做了,问题是新的库(在~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 中找到)。我的意思是,刚刚编译的库与已经存在的库相同。我仍然得到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】:

关键部分是:

~/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/

【讨论】:

以上是关于QSqlDatabase:Mac OS 上未加载 QMYSQL 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

python 选择OS上未使用的端口。 close()后可能会出现竞争情况。

Mac 上未识别 Ruby 版本

QSqlDatabase:未加载驱动程序,来自另一个 dll

CloudKit 错误:在 Mac 上未经过身份验证,但我已登录

QSqlDatabase-SQLite无法在开机自启动时加载数据?

PHP Mac OS X上的PHP系统加载