Qmsql not loaded :平台 qt5.7 Ubuntu16.04
no@no-70MYA004CN:~$ cd /home/no/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers
no@no-70MYA004CN:~/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers$ ldd libqsqlmysql.so
(上面指令查看所有依赖关系)
./libqsqlmysql.so: /lib/x86_64-linux-gnu/libmysqlclient_r.so.16: no version information available (required by ./libqsqlmysql.so)
linux-vdso.so.1 => (0x00007fffdd4d8000)
libmysqlclient_r.so.16 => /lib/x86_64-linux-gnu/libmysqlclient_r.so.16 (0x00007f0090e49000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f0090c2f000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f00909f7000)
libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f00907de000)
libssl.so.10 => /lib/x86_64-linux-gnu/libssl.so.10 (0x00007f0090575000)
libcrypto.so.10 => /lib/x86_64-linux-gnu/libcrypto.so.10 (0x00007f0090131000)
libQt5Sql.so.5 => /home/no/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers/./../../lib/libQt5Sql.so.5 (0x00007f008feec000)
libQt5Core.so.5 => /home/no/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers/./../../lib/libQt5Core.so.5 (0x00007f008f7d1000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f008f5b4000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f008f232000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f008ef29000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f008ed13000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f008e949000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f008e745000)
libicui18n.so.56 => /home/no/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers/./../../lib/libicui18n.so.56 (0x00007f008e2ab000)
libicuuc.so.56 => /home/no/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers/./../../lib/libicuuc.so.56 (0x00007f008def3000)
libicudata.so.56 => /home/no/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers/./../../lib/libicudata.so.56 (0x00007f008c510000)
libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f008c30e000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f008c106000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f008bdf5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f00915a0000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f008bb85000)
一般会有三个文件not found (即上边加粗的)后两个可以使用终端直接安装(具体方法百度),第一个需要手动下载并移动到/usr/lib/x86_64-linux-gnu/下(这里使用终端移动时加上sudo),所有文件安装完毕就可以,重启qt运行程序就可以正常打开链接上mysql,若还是not loaded错误,就需要重新编译libqsqlmysql.so(这种情况就异常麻烦,我使用这种方法各种出错)
libmysqlclient_r.so.16 下载地址https://download.csdn.net/download/jingtaoqian8521/10695078
1、安装libmysqlclient-dev
sudo apt-get install libmysqlclient-dev
sudo apt-get install libqt5sql5-mysql
2、进入qt安装目录,/home/zmw/Qt5.6.0/5.6/gcc_64/plugins/sqldrivers
ldd libqsqlmysql.so
发现问题
libmysqlclient_r.so.16 => not found
libssl.so.10 => not found
libcrypto.so.10 => not found
3、解决问题libmysqlclient_r.so.16 => not found
下载 libmysqlclient.so.16,地址: http://files.directadmin.com/services/debian_5.0_64/libmysqlclient.so.16
下载后将该文件拷贝至/usr/lib/x86_64-linux-gnu,并重命名为libmysqlclient_r.so.16
sudo cp /home/zmw/libmysqlclient.so.16 /usr/lib/x86_64-linux-gnu
cd /usr/lib/x86_64-linux-gnu
sudo mv libmysqlclient.so.16 libmysqlclient_r.so.16
4、解决问题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 //建立软连接
5、再次ldd libqsqlmysql.so,问题不复存在。