c++ - QSql数据库 : QMYSQL driver not loaded on Mac OS

标签 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

最后应该生成一个新版本(调试和发布)的库,然后是用新版本替换旧版本的问题,从现在开始一切正常。

我刚刚这样做了,问题是新的库(在 ~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

有帮助。

我对此有一些了解,但我会将其留给该领域更有知识的人来提供详细信息。

最佳答案

关键部分是:

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

关于c++ - QSql数据库 : QMYSQL driver not loaded on Mac OS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38416094/

相关文章:

mysql - 当尝试在 Rails 中将数据转换为 json 时,UTF8 崩溃

qt - 如何使用 QPlaintTextEdit 有效地创建固定宽度的列记录器?

mysql - 如何使用codeigniter中的BETWEEN mysql函数获取两个日期之间的数据

c++ - 如何禁用 QPushButton?

c++ - qwt中的魔法数字

c++ - 是否可以使用 JNI 在 C 或 C++ 中实现 Java 接口(interface)?

c++ - C++ 根据数组长度写入数据

c++ - 使用 get 方法或成员直接访问值?

c++ - 条件变量在被通知之前唤醒

mysql - 汽车租赁的实体关系图 (MySQL)