瞎折腾了好几天,终于解决了!
编译之类的太麻烦了,直接用‘成功人士’的劳动果实吧!
先把libmysqlclient_r.so.16文件下载下来,下载地址:https://www.lanzous.com/i7iv9ej
Ubuntu16 32位、64位的都有,亲测OK
问题:
QSqlDatabase: QMYSQL driver not loaded
一、32位系统
(1)首先进入终端,运行命令cd /home/ubuntu/Qt5.4.0/5.4/gcc/plugins/sqldrivers/
的目录下,然后使用ldd libqsqlmysql.so
查看所有依赖关系
linux-gate.so.1 => (0xb773d000)
libmysqlclient_r.so.16 => not found
libQt5Sql.so.5 => /home/ubuntu/Qt5.4.0/5.4/gcc/plugins/sqldrivers/./../../lib/libQt5Sql.so.5 (0xb76cf000)
libQt5Core.so.5 => /home/ubuntu/Qt5.4.0/5.4/gcc/plugins/sqldrivers/./../../lib/libQt5Core.so.5 (0xb718b000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb7014000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6e5e000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6e41000)
libicui18n.so.53 => /home/ubuntu/Qt5.4.0/5.4/gcc/plugins/sqldrivers/./../../lib/libicui18n.so.53 (0xb6bea000)
libicuuc.so.53 => /home/ubuntu/Qt5.4.0/5.4/gcc/plugins/sqldrivers/./../../lib/libicuuc.so.53 (0xb6a6a000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb6a65000)
libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb6a62000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb6a59000)
libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb6930000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb68da000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb68bd000)
/lib/ld-linux.so.2 (0x80065000)
libicudata.so.53 => /home/ubuntu/Qt5.4.0/5.4/gcc/plugins/sqldrivers/./../../lib/libicudata.so.53 (0xb5434000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb53bf000)
(2)发现问题libmysqlclient_r.so.16 => not found
(3)解决问题libmysqlclient_r.so.16 => not found
3-1 把上面下载得到的压缩包解压,打开32位的那个文件,见该文件下的libmysqlclient_r.so.16文件复制到Ubuntu桌面,Crtl+Alt+T进入终端,执行例如以下命令
sudo cp /home/ubuntu/Desktop/libmysqlclient_r.so.16 /usr/lib/i386-linux-gnu/
3-2 再次进入cd /home/ubuntu/Qt5.4.0/5.4/gcc/plugins/sqldrivers/
目录下,运行
ldd libqsqlmysql.so
查看libmysqlclient_r.so.16 => not found
问题是否存在,不存在重启Qt即可
二、64位系统
(1)首先打开终端,运行命令cd /home/ubuntu/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers
,然后使用ldd libqsqlmysql.so
查看所有依赖关系,发现存在如下3个问题
libmysqlclient_r.so.16 => not found
libssl.so.10 => not found
libcrypto.so.10 => not found
(2)解决问题libmysqlclient_r.so.16 => not found
把上面下载得到的压缩包解压,打开64位的那个文件,将该文件下的libmysqlclient_r.so.16文件复制到Ubuntu桌面,Crtl+Alt+T进入终端,执行例如以下命令
sudo cp /home/ubuntu/Desktop/libmysqlclient_r.so.16 /usr/lib/x86_64-linux-gnu
(3)解决问题libssl.so.10 => not found
和libcrypto.so.10 => not found
终端执行
sudo apt-get install libssl1.0.0 libssl-dev
cd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10 //建立软连接
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10 //建立软连接
(4)再次进入cd /home/ubuntu/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers
目录下,运行
ldd libqsqlmysql.so
查看以下问题是否存在
libmysqlclient_r.so.16 => not found
libssl.so.10 => not found
libcrypto.so.10 => not found
不存在重启Qt即可,如存在其中一个检查一下以上操作是否有误或者按以上步骤重新操作。
相信操作无误的话,无论32位还是64位再次ldd libqsqlmysql.so,问题都不复存在。