Ubuntu QT C连接mysql数据库

来源:互联网 发布:阿里云oss和七牛 编辑:程序博客网 时间:2024/06/05 20:27

操作系统:Ubuntu14.04 64位

QT:5.4.2 32位

开始是想用QT自带的QSqlDatabase来连接mysql处理数据库,然后在网上找了例子跑了一下,发现QSQLITE、QMYSQL和QPSQL的drivers都是available的,但是只有QSQLITE可以load,连接的上。

用QMYSQL测试:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
Unable to open database

网上找了很多方法:

cd ./Qt5.4.2/5.4/gcc/plugins/sqldrivers/

ldd libqsqlmysql.so

显示:libmysqlclient_r.so.16=>not found

方法1:下载libmysqlclient.so.16文件,然后放到/usr/lib/i386-linux-gnu里面,改名libmysqlclient_r.so.16

             再来ldd /usr/bin/ld: 找不到 -lmysqlclient_r,还是找不到该文件

方法2:在/usr/lib/i386-linux-gnu里面新建libmysqlclient_r.so.16文件链接到libmysqlclient_r.so.18,然后

            ldd libqsqlmysql.so,这时libmysqlclient_r.so.16 => /usr/lib/i386-linux-gnu/libmysqlclient_r.so.16   

            (0xf73d6000)找到了,但是还显示./libqsqlmysql.so: /usr/lib/i386-linux-gnu/libmysqlclient_r.so.16: version  

           `libmysqlclient_16' not found (required by ./libqsqlmysql.so)  ,再运行例子,问题没有解决

又查了一下,发现了方法3:就是安装时要将源文件也安装下来,然后在源文件里面重新编译mysql驱动,之后再将这个生成的libqsqlmysql.so文件放到Qt5.4.2/5.4/gcc/plugins/sqldrivers/下面,再连接看看。

这有两个好的例子:

http://blog.csdn.net/qq_28851503/article/details/52422302

http://www.cnblogs.com/yongqiang/p/6121515.html

但都是64位的QT版本,我的是32位的,我make时会出现问题,在想方法解决。


所以只好想其他办法来解决,比如直接用C来写

这个是查到的很好的例子:http://blog.csdn.net/hustspy1990/article/details/7414572

注意:头文件有的是"mysql/mysql.h",在pro文件中添加lmysqlclient库(unix|win32: LIBS += -lmysqlclient)。

原创粉丝点击