ARM QT/Embedded 4.7.0移植添加MySQL插件

环境

交叉编译器4.3.3

ubuntu:12.04 64位 , QT4.8.1

ARM:2416 ,linux3.1,qt/e4.7.0

简介

在QT/E运行mysql需要mysql库,qtmysql插件同时支持。

根据QT configure可知,使QT支持mysql有两种方式

1.在编译时使用 -qt-sql-mysql,将mysql驱动编译进库中

2.编译mysql为插件,使用插件的方式使用mysql

QT SQL Database Drivers文档介绍了方式2的一些使用方法,http://doc.qt.io/archives/qt-4.8/sql-driver.html

两种方法均需要mysql文件,因此流程为:

编译mysql->编译qt mysql插件

mysql下载链接:http://www.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.1/

ncurses下载链接:http://ftp.gnu.org/gnu/ncurses/

ubuntu qt支持mysql

sudo apt-get install libqt4-sql-mysql

1.编译mysql插件(ARM)

2.编译QT mysql插件(ARM)

获取qt-everywhere-opensource-src-4.6.3.tar.gz源码并解压,tar -xzvf qt-everywhere-opensource-src-4.6.3.tar.gz

进入源码目录下src/plugins/sqldrivers/mysql,依次执行

/opt/qt4.7/bin/qmake "INCLUDEPATH+=/opt/mysql-arm/include/mysql" "LIBS+=-L/opt/mysql-arm/lib/mysql -lmysqlclient_r" mysql.pro

make

make后当前文件会生成libqsqlmysql.so动态库

注意:此处qmake应当是用于ARM平台上编译QT/E后生成目录下/bin/qmake,否则ARM平台上的QT无法识别到该插件;/opt/mysql-arm为交叉编译得到的mysql目录。

make install,对libqsqlmysql.so精简并移动到QT/E安装目录下plugins/sqldrivers

3.拷贝qtmysql插件至ARM平台

将编译得到的qtmysql插件(第2步)移动到ARM平台上QT库相关文件下,

4.拷贝mysql库至ARM平台

将交叉编译mysql目录lib/mysql动态库文件(第1步)移动到ARM  /usr/lib下,

否则运行QT时会报错:error while loading shared libraries: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory

5.测试(ARM)

编写简单的QT程序

#include <QSqlDatabase>
#include <QSqlQuery>

QStringList drivers=QSqlDatabase::drivers();
for(int i=0;i<drivers.size();i++)
    qDebug("%s",qPrintable(drivers[i]));
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("192.168.0.124");
db.setDatabaseName("testdb");       //库名
db.setPort(3306);
db.setUserName("root");     //账号
db.setPassword("123456");   //密码
bool ok = db.open();

if(!ok)
    qDebug("open faild");
else
{
    qDebug("open database success !");
    QSqlQuery query( "select *  from tab");
    while(query.next())
    {
        QString index=query.value(0).toString();
        QString name=query.value(1).toString();
        QString num=query.value(2).toString();
        qDebug("%s,%s,%s",qPrintable(index),qPrintable(name),qPrintable(num));//
    }
}

运行效果:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值