葡京赌场网址qt mysql驱动问题解绝

传统解决智:
平、解决问题
  本文解决在Ubuntu16.04网下,Qt5无法连接MySQL数据库的题目(Qt5少MySQL驱动,Qt5缺少libqsqlmysql.so动态库,如何安装libqsqlmysql库,如何用Qt5源码编译生成libqsqlmysql库)
 
第二、问题现象
  编译运行Qt连接MySQL数据库程序的上,控制台会报如下错误:
  QSqlDatabase: QMYSQL driver not loaded
  QSqlDatabase: available drivers: QSQLITE QMYSQL,Q…..等
 
老三、问题由
  用Qt连接MySQL,Qt会失去加载libqsqlmysql.so动态库,如果加载不顶要加载的库房发生题目,都见面招Qt提示driver
not loaded。
  (1)加载不交:Qt安装目录下之sqldrivers目录中并未libqsqlmysql.so文件(我的途径:/home/ubuntu/Qt5.8.0/5.8/gcc_64/plugins/sqldrivers)
  (2)库发生问题:进入Qt的sqldrivers目录,执行“ldd
libqsqlmysql.so”命令,会面世“libmysqlclient_r.so.16 => not
found”等等not found提示,如下图:

  昨天,终于受不了MotoG2之后台软件无停歇更开,手机时不时卡坏,于是决定刷机,网上的学科好多,实践后总结一下,下面这科目完美通过。

      葡京赌场网址 1

1.解官方BL锁。
第一步:http://pan.baidu.com/s/1sjC1k3V 下载CMD.ZIP
解压 。
次步:进入解压文件夹,按停shirt同时鼠标右键点击空白出,选择于此间打开命令窗口,然后于CMD里面分别输入adb和fastboot回车,确保命令能科学实施。
老三步:连接手机装moto最新驱动
季步:发掉数据线并关闭手机上fastboot模式(同时按停起来机键和音量键下键一段时间)
第五步:在fastboot模式手机总是电脑,在回来刚才解压有fastboot文件目录下执行命令:
fastboot oem get_unlock_data 
此时窗口会产出而下面几乎段字符:

季、解决方式
思路:自己手动编译mysql驱动的源码,生成libqsqlmysql.so库,然后将这库拷贝到Qt的sqldrivers目录下
1、编译libqsqlmysql.so之前需要将到Qt连接mysql驱动之源码,因此预先去Qt官网下充斥Qt安装包qt-opensource-linux-x64-5.8.0.run
  (1)打开网址:https://www.qt.io/,点击Download

葡京赌场网址 2
拿每行<bootloader>后面的字符复制下来,按顺序组合成一个加上字符。
第六步:登录这个网址(https://motorola-global-portal.custhelp.com/app/standalone/bootloader/unlock-your-device-b)。登录后,

        葡京赌场网址 3

葡京赌场网址 4

  (2)做相同效精选题,一路挑选下去:
  (也足以直接打开这个网址(可能失效):https://www.qt.io/download-open-source/,选View
All Downloads)

以白框里输入才底增长字符,然后点击下面的“can my device be unlocked?”
接着朝下滑,等待少许出现“requst unlock key ”选择点的I agree
。就见面唤起而unlock key 以发送至您的信箱。
第七步:回到CMD ,输入:
fastboot oem unlock UNIQUE_KEY
UNIQUE_KEY替换成你moto发给您的20号字符,出车执行。到此BL解锁成功。重开后手机界面将会晤生出一个警示提示(必须于手机开发者选项中允许OEM解锁设备,)

葡京赌场网址 5

2.Recovery和ROOT

葡京赌场网址 6

**步骤:
1,下载文件并解压:http://pan.baidu.com/s/1nt9iXHv(我在解锁BL里放的工具包不要用,那个用的是老的rec),并复制UPDATE-SuperSU-v2.35.zip到内存卡(如不需ROOT则可不必)

 

2,安装我提供的叫(已装的可稍微过)

葡京赌场网址 7

3,手机关机按电源和音量减,进入BootLoader模式(反正就是特别模式,,叫法不要在意),连接电脑

葡京赌场网址 8

4,在解压的目里比如停Shift,再右键单击文件夹的空处,选择于此打开命令窗口,在命令窗口里输入
**

葡京赌场网址 9

  1. fastboot flash recovery twrp.img

  (3)选择查看所有的下载资源(View All Downloads)

复制代码

 

**twrp.img即为老三方rec镜像,你可替换成你自己想如果的。操作完成后第三方REC就刷好了。下面进行ROOT。

葡京赌场网址 10

5,进入BootLoader模式,按音量-到recovery选项达到,再按音量+,即可进入recovery模式。我此刷的凡twrp的rec,进入时应当会发一个Team
Win Recovery Project的表明

  (4)选择下载的本子(我选择的凡Qt 5.7.0 for Linux64-bit)

6,选择Install,选中之前复制进手机的supersu文件,滑动确认,等待完成。

葡京赌场网址 11

7,重开手机,Enjoy!**

 2、安装Qt
  (1)运行安装包(我是把Qt安装及网根目录下之)
  若想装至网根目录下,则实施:sudo
./qt-opensource-linux-x64-5.7.0.run
  若想装到用户根目录下,则履行:./qt-opensource-linux-x64-5.7.0.run
 
  (2)选择设置源码组件

后记:需要相关资源的@我即可。

葡京赌场网址 12

 

3、编译生成Qt连接MySql的使,即libqsqlmysql.so
  (1)进入Qt安装目录,找到MySql驱动源码目录
  参考我的目录:/home/ubuntu/Qt5.8.0/5.8/Src/qtbase/src/plugins/sqldrivers/mysql
  注:每个人的源码目录可能两样,找的上参考Src,qtbase、plugins、sqldrivers、mysql目录去摸索就不曾错。

葡京赌场网址 13

  (2)执行qmake生成Makefile。
  注:如果前设置了其它Qt版本,那么可能实行的凡另版本qmake。
  不妨执行“qmake
-v”命令查看转qmake的本子是否与我们正好安装的Qt的qmake一致。
  最佳方案:首先找到新装置之Qt的qmake所在途径,然后找到mysql.h头文件所在路径,最后执行qmake命令生成Makefile(建议实行qmake的时刻带达qmake的路径)
  qmake命令:sudo /opt/Qt5.7.0/5.7/gcc_64/bin/qmake
 “INCLUDEPATH+=/usr/include/mysql” “LIBS+=-L/usr/lib -lmysqlclient_r”
mysql.pro
(在履行ldd
libqsqlmysql.so时所短的公文,不止这一个,还有另外两单,主要思路就是于/lib/x_8664-linux-gnu目录下找到名字基本相同的文件。找到后复制到/usr/lib目录下,再改名(改成为适合的名,与实践ldd命令时所短的文件称相同)三只文本都这么做)

葡京赌场网址 14

履的历程中如果报错,仔细看错误是寻觅不至目录还是找不顶库房文件,按照地方的办法去搜寻或者去装库,在实践qmake命令就可了。
 
  我因为己之网吧条例操作一下

葡京赌场网址 15

葡京赌场网址 16

葡京赌场网址 17

葡京赌场网址 18

(3)生成libqsqlmysql.so
  执行命令:make
  注意make命令输出的结尾几乎尽,指出了别的libqsqlmysql.so位置。
自我的门径是:/home/ubuntu/Qt5.8.0/5.8/Src/qtbase/plugins/sqldrivers
 
4、把生成libqsqlmysql.so拷贝到sqldrivers文件夹下(我是拷贝到:/home/ubuntu/Qt5.8.0/5.8/gcc_64/plugins/sqldrivers)
 
五、测试样例
  到这边,Qt就既好连续不断MySql数据库了,拷贝这个程序去摸索吧。
  pro文件中补充加这句话“QT += sql”,让Qt加载数据库模块

1 #include <QCoreApplication>
2 #include <QSqlDatabase>
3 #include <QSqlQuery>
4 #include <QSqlTableModel>
5 #include <QSqlError>
6 #include <QDebug>
7
8 int main(int argc, char *argv[])
9 {
10 QCoreApplication app(argc, argv);
11 QSqlDatabase db = QSqlDatabase::addDatabase(“QMYSQL”); //database
driver
12 db.setHostName(“localhost”); //database ip address
13 db.setUserName(“username”); //database username
14 db.setPassword(“password”); //database password
15 db.setDatabaseName(“HC”); //database table name
16 if (true == db.open())
17 {
18 qDebug() << “succ”;
19 }
20 else
21 {
22 qDebug() << “failed”;
23 exit(0);
24 }
25 return app.exec();
26 }