【问题标题】:QMSQL : Cannot mix incompatible Qt library (version 0x50b03) with this library (version 0x50c05)QMSQL:不能将不兼容的 Qt 库(版本 0x50b03)与此库(版本 0x50c05)混合
【发布时间】:2019-09-13 08:20:39
【问题描述】:

我正在尝试在 QT 应用程序中使用 MySQL 数据库。为此,我需要手动构建 MySQL,但根本没有按计划进行。

使用: Qt 5.12.5 g++ 8.3.0 制作 4.2.1 MySQL 15.1 Debian 10.1

我首先尝试遵循此指南:https://doc.qt.io/qt-5/sql-driver.html 但 qmake 不会检测 MySQL 标头。

在网上搜索后,我发现有人设法通过直接构建驱动程序来解决问题。

我进入 ~/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/mysql 并运行:

qmake qmake "INCLUDEPATH+=/usr/include" "LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient_r"

没用:

项目错误:未定义库“mysql”。

经过一番谷歌搜索,我将 mysql.pro 文件更改为这个:

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

目前有效。下一步,运行 make !你猜怎么着?也没用。

/usr/include/c++/8/cstdlib:75:15:致命错误:stdlib.h:没有这样的文件或目录

在没有“INCLUDEPATH [...]”的情况下再次运行 qmake,现在我缺少 mysql.h。我手动将它的路径添加到 Makefile。它奏效了。

我尝试再次运行我的 QT 应用程序,但仍然没有 MySQL 驱动程序。

原来新构建的驱动程序没有与其他驱动程序一起复制到正确的目录中。于是我复制到了Qt/5.12.5/gcc_64/plugins/sqldrivers。

现在看来我的插件确实被 Qt 识别了,但它只是因为这个错误而崩溃:

不能将不兼容的 Qt 库(版本 0x50b03)与此库(版本 0x50c05)混合使用

我不知道下一步该怎么做,在互联网上找不到任何对这个案例有用的东西......

请帮忙?

【问题讨论】:

    标签: mysql linux qt debian qtsql


    【解决方案1】:

    原来我的系统上安装了另一个版本的 Qt。我不知道它来自哪里,但这个问题现在已经解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 2018-05-20
      • 2016-09-18
      相关资源
      最近更新 更多