移植QT-MYSQL到ARM(客户端版和完整版)

来源:互联网 发布:网络电话源码 编辑:程序博客网 时间:2024/06/01 10:13

资源下载传送门http://download.csdn.net/detail/iot_shun/9839350(都是编译好的库,编辑不易,亲们打赏一下咯)

 QT和mysql源码包太大不能上传 如需请加qq: 675501575

移植先看:

当前文件夹都是我移植好的库和源码包,后面移植生成的库都放在了当前文件夹下,其中mysql-arm.tar.gz 是 我已经移植好的mysql在arm平台下的源码包,
qt-everywhere-opensource-src-5.5.0.tar.gz是QT的官方源码包(用于后面我们移植QT-mysql)


不想移植的看这:
-》在QT库的目录下/opt/armqt5.5-gec/plugins 创建mkdir sqldrivers
-》拷贝libqsqlmysql.so到sqldrivers目录下
-》建立软连接 ln -s /opt/armqt5.5-gec/plugins/sqldrivers/libqsqlmysql.so   /lib/libqsqlmysql.so
-》配置好mysql服务器支持远程连接(详见页底)




--------------------------------------------mysql完整版(包括客户端和服务器端)-----------------------------------------------------


1.将mysql-arm.tar.gz下载到开发板,解压mysql-arm.tar.gz到/usr/local目录下
  --》tar -zxvf  mysql-arm.tar.gz  -C  /usr/local


2.将mysql.server拷贝到开发板/etc/init.d/目录下




3. 将my.conf文件拷贝到/etc目录下


--------------------------------------------------------------------------------------------------------




不过因为我们粤嵌的开发板flash较小,我们选择只移植mysql的客户端,连接pc端的mysql
 
—————————————————------- C语言 客户端版————————————————————————————
(具体移植方法见http://blog.csdn.net/liangzhuangdongtou/article/details/51782557--》》》可能会有所出入,遇到问题自己解决一下呗)


1.拷贝libmysqlclient.so.16.0.0 到开发板/lib目录下,并建立软连接,命令如下
  ln -s libmysqlclient.so.16.0.0 libmysqlclient.so.16
  ln -s libmysqlclient.so.16.0.0 libmysqlclient.so


2.拷贝libmysqlclient_r.so.16.0.0文件到开发板/lib目录下,并建立软连接libmysqlclient_r.so.16
  ln -s libmysqlclient_r.so.16.0.0 libmysqlclient_r.so.16
  ln -s libmysqlclient_r.so.16.0.0 libmysqlclient_r.so 




3.拷贝 mysql_client_test到开发板/bin目录下,并将权限修改为777
  可用 mysql_client_test --help查看使用方法(mysql_client_test用于测试mysql连接,此步骤可以忽略)
  
  使用方法:mysql_client_test -h ip--database=数据库名 -u 用户 -p密码1
        ——》mysql_client_test -h 192.168.1.17 --database=student -u root -p123456




--》连接成功会出现以下信息

#####################################
client_connect  
#####################################


 Establishing a connection to '192.168.1.17' ...OK
Connected to MySQL server version: 5.7.17-log (50717)




———————————————————QT客户端版————————————————————————


1. QT使用mysql需要先编译好arm平台下的mysql(详见 http://blog.csdn.net/liangzhuangdongtou/article/details/51782557)


   -》过程有些麻烦

赶时间的话可选择以下方案
将我移植好的源码包 mysql-arm.tar.gz 解压放到/usr/local目录下
-》tar -zxvf /mnt/hgfs/share/mysql-arm.tar.gz -C /usr/local




上面的完成后,接下来需要编译对应ARM平台的QT的mysql驱动(当然需要先移植好QT到开发板,还没有移植的同学看下之前的笔记咯)


(由于我们已经移植好的粤嵌qt库没有支持mysql, 此时我们需要编译 QT-mysql,)





a)解压源码包tar -zxvf qt-everywhere-opensource-src-5.5.0.tar.gz -C /opt
tips:QT源码包每一级都会有.pro文件,所以我们可以单独编译我们所需要的


b)进入解压后的源码包目录
1)cd  /opt/qt-everywhere-opensource-src-5.5.0/qtbase/src/plugins/sqldrivers/mysql 
2)执行/opt/armqt5.5-gec/bin/qmake "INCLUDEPATH+=/usr/local/mysql/include/mysql" "LIBS+=-L/usr/local/mysql/lib/mysql -lmysqlclient_r" mysql.pro
        
  3)倘若一切步骤顺利的话,会出现以下信息
rm -f libqsqlmysql.so
arm-linux-gnueabi-g++ -Wl,--no-undefined -Wl,-O1 -Wl,--enable-new-dtags -Wl,-rpath,/opt/armqt5.5-gec/lib -shared -o libqsqlmysql.so .obj/main.o 


.obj/qsql_mysql.o .obj/moc_qsql_mysql_p.o  -L/home/tiydy/armlib/tslib/lib -L/home/tiydy/armlib/freetype/lib -L/home/tiydy/armlib/fontconfig/lib -


L/usr/local/mysql/lib/mysql -lmysqlclient_r -L/opt/armqt5.5-gec/lib -lQt5Sql -lQt5Core -lpthread  
mv -f libqsqlmysql.so ../../../../plugins/sqldrivers/ 


        即在/opt/qt-everywhere-opensource-src-5.5.0/qtbase/plugins/sqldrivers目录下出现libqsqlmysql.so

-》》》libqsqlmysql.so这个是我们想要的

4)拷贝libsqlmysql.so到开发板上
a) 我这里是/opt/armqt5.5-gec/plugins 
-》先创建mkdir sqldrivers
-》拷贝libqsqlmysql.so到sqldrivers目录下
-》建立软连接 ln -s /opt/armqt5.5-gec/plugins/sqldrivers/libqsqlmysql.so   /lib/libqsqlmysql.so
到此就大功告成了!!!!


5)最后下载mysql_test目录下的测试程序(mysql_test)到开发板测试一下吧






--------------------让mysql支持远程连接--------------------------------------------
方法1.在windows进入cmd命令行(当然也可以在图形界面上修改)
-》mysql -u root -p
       -》use mysql;
                -》update user set host = '%' where user = 'root';
                -》select host, user from user;


方法2:有兴趣自己找下吧!!

0 0
原创粉丝点击