Qt5 MYSQL 驱动未加载错误

Qt5 MYSQL driver not loaded error

我有一个 Fedora 27 64 位 OS,我正在尝试 运行 一个基于 Qt 的应用程序,该应用程序正在尝试访问 MySQL 服务器(我可以从命令行)。但是我的应用程序显示这些错误:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
ERROR: DATABASE: Open failed with error code [-1].  Driver error [Driver not loaded].  Database error [Driver not loaded]

我已经尝试了所有可以在网上找到的方法,但无法解决这个问题。当我检查 libqsqlmysql.so 依赖项时,我看到:

[root@host lib64]# ldd /home/administrator/Qt/5.7/gcc_64/plugins/sqldrivers/libqsqlmysql.so 
/home/administrator/Qt/5.7/gcc_64/plugins/sqldrivers/libqsqlmysql.so: /lib64/libmysqlclient_r.so.16: version `libmysqlclient_16' not found (required by /home/administrator/Qt/5.7/gcc_64/plugins/sqldrivers/libqsqlmysql.so)
    linux-vdso.so.1 (0x00007fffde4ef000)
    libmysqlclient_r.so.16 => /lib64/libmysqlclient_r.so.16 (0x00007f3188fd8000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f3188dc1000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f3188b8b000)
    libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f3188971000)
    libssl.so.10 => /lib64/libssl.so.10 (0x00007f3188705000)
    libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f31882a7000)
    libQt5Sql.so.5 => /home/administrator/Qt/5.7/gcc_64/plugins/sqldrivers/../../lib/libQt5Sql.so.5 (0x00007f3188062000)
    libQt5Core.so.5 => /home/administrator/Qt/5.7/gcc_64/plugins/sqldrivers/../../lib/libQt5Core.so.5 (0x00007f3187944000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3187725000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f318739f000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f318704a000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f3186e33000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f3186a50000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f318684c000)
    libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f31865e0000)
    libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f3186158000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00007f3185f55000)
    libicui18n.so.56 => /home/administrator/Qt/5.7/gcc_64/plugins/sqldrivers/../../lib/libicui18n.so.56 (0x00007f3185abb000)
    libicuuc.so.56 => /home/administrator/Qt/5.7/gcc_64/plugins/sqldrivers/../../lib/libicuuc.so.56 (0x00007f3185703000)
    libicudata.so.56 => /home/administrator/Qt/5.7/gcc_64/plugins/sqldrivers/../../lib/libicudata.so.56 (0x00007f3183d20000)
    libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007f3183b1e000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f3183916000)
    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f3183602000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f3189440000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f318338f000)

果然我的系统上没有 /lib64/libmysqlclient_r.so.16。而且DNF说什么都没有提供这个文件!所以我尝试将 /lib64/libmysqlclient_r.so 符号链接到 /lib64/libmysqlclient_r.so.16 但仍然没有快乐。

有人可以提供解决方案吗?

在不同站点进行大量搜索后,一致认为从源代码(随 Qt Creator 安装)重新编译 Qt sql 驱动程序。切换到 SQL 驱动程序的源目录,然后是 'make' 和 'make install'

之后错误消失了。

忽略所有关于 copying/symlinking 不同 .so 文件的建议。它(不再)起作用了。