QMYSQL 可用但无法加载

Posted

技术标签:

【中文标题】QMYSQL 可用但无法加载【英文标题】:QMYSQL available but not load 【发布时间】:2019-12-29 18:38:19 【问题描述】:

QSqlDatabase:未加载 Qmysql 驱动程序 QSqlDatabase:可用驱动程序:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

我苦苦挣扎了 2 天才弄明白。我做了我的研究相信我。这些解决方案都不适合我。当我执行

/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers$ ldd libqsqlmysql.so 

我得到的不是动态可执行文件。所以我猜这不是一个好文件,因为当我在 libqsqlite.so 上执行 ldd 时,我得到了

linux-vdso.so.1 (0x00007f80db0f5000)
    libQt5Sql.so.5 => /home/bogdan/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/./../../lib/libQt5Sql.so.5 (0x00007f80da96d000)
    libQt5Core.so.5 => /home/bogdan/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/./../../lib/libQt5Core.so.5 (0x00007f80da1bd000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f80d9f9e000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f80d9c15000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f80d9877000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f80d965f000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f80d926e000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f80d9051000)
    libicui18n.so.56 => /home/bogdan/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/./../../lib/libicui18n.so.56 (0x00007f80d8bb8000)
    libicuuc.so.56 => /home/bogdan/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/./../../lib/libicuuc.so.56 (0x00007f80d8800000)
    libicudata.so.56 => /home/bogdan/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/./../../lib/libicudata.so.56 (0x00007f80d6e1d000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f80d6c19000)
    libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f80d6a17000)
    libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f80d6700000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f80daed0000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f80d648e000)

谁能帮我用确切的步骤解决这个问题。在此先感谢!

【问题讨论】:

评论不用于扩展讨论;这个对话是moved to chat。 【参考方案1】:

我重新提出了为什么@peppe 答案中的步骤需要针对最新版本的 Qt 进行更新的问题。

步骤:

    安装上面找到的包的开发版本:libmysqlclient-dev

    从您的 Qt 安装中运行 MaintenanceTool,并确保选择安装 Qt 的源代码,或者使用以下方法克隆项目:

    git clone -b YOUR_QT_VERSION https://github.com/qt/qtbase.git
    

    git clone -b YOUR_QT_VERSION git://code.qt.io/qt/qtbase.git
    

    在这种情况下 YOUR_QT_VERSION=5.13.2)

    进入 QTDIR/QT_VERSION/Src/qtbase/src/plugins/sqldrivers/

    运行正确的 qmake,即来自 Qt 安装的那个(不是系统范围的一个或类似的)。确保它的最佳方法是提供完整路径:QTDIR/QT_VERSION/gcc_64/bin/qmake sqldrivers.pro

    运行make && make install

【讨论】:

以上是关于QMYSQL 可用但无法加载的主要内容,如果未能解决你的问题,请参考以下文章

Qt5、C++:未加载 QMYSQL 驱动程序

qt5.1.1 mysql ubuntu QMYSQL驱动未加载

为 Qt 构建和安装 MySql 驱动程序后,无法加载 MySql 驱动程序

找到但未加载的 MYSQL 驱动程序

中标麒麟+Qt+mysql解决驱动无法加载的问题

未加载 QMYSQL 驱动程序,尝试了所有提示