ubuntu下qt与mysql环境搭建

1:相关库的关联问题

chen@chen-Lenovo:~$ ldd /usr/lib/qt4/plugins/libqsqlmysql.so /usr/lib/qt4/plugins/libqsqlmysql.so: /usr/lib/i386-linux-gnu/libmysqlclient_r.so.16: no version information available (required by /usr/lib/qt4/plugins/libqsqlmysql.so)

    linux-gate.so.1 =>  (0xb771b000)
    libmysqlclient_r.so.16 => /usr/lib/i386-linux-gnu/libmysqlclient_r.so.16 (0xb73d7000)//通过软链接已经解决
    libQt5Sql.so.5 => not found                                  //没有找到,说明是依赖库的路径有问题,(一般是环境变量没有添加相应搜索路径)
    libQt5Core.so.5 => not found                               //没有找到,说明是依赖库的路径有问题,或者少了这个库,(一般是环境变量没有添加相应搜索路径)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb72f1000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7147000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7131000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb712c000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7110000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb70e4000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb70c6000)
    /lib/ld-linux.so.2 (0xb771c000)

2:关联qt与mysql

(/home/chen/qtcreator-3.3.0/bin/plugins/sqldrivers/libqsqlmysql.so,一般为qtcreator自带的,有的版本太低,依赖的库太低 libmysqlclient_r.so.16 ,所以不能支持,所安装的sqlclient,如上所示自带的libqsqlmysql.so所依赖的libmysqlclient_r.so.16是.16的,但是我们才安装的mysql_client为libmysqlclient_r.so.18,所以两个不匹配,所以libqsqlmysql.so找不到libmysqlclient_r.so.16,因此libqsqlmysql.so不能用

(一)通常需要安装sudo apt-get install mysql_server mysql_client(通常server中就自带client)

(二)安装qtmysql驱动(一般会出现/usr/lib/i386-linux-gnu/qt4/plugins/sqldrivers/libqsqlmysql.so)

用ldd查看

chen@chen-Lenovo:~$ ldd /usr/lib/i386-linux-gnu/qt4/plugins/sqldrivers/libqsqlmysql.so
    linux-gate.so.1 =>  (0xb77bc000)
    libmysqlclient.so.18 => /usr/lib/i386-linux-gnu/libmysqlclient.so.18 (0xb7478000)      //正确,并且是so.18的
    libQtSql.so.4 => /usr/lib/i386-linux-gnu/libQtSql.so.4 (0xb743a000)
    libQtCore.so.4 => /usr/lib/i386-linux-gnu/libQtCore.so.4 (0xb715c000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb7077000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7059000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6eaf000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb6e99000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb6e93000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6e78000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb6e4c000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb6e43000)
    libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb6d4a000)
    /lib/ld-linux.so.2 (0xb77bd000)
    libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb6d0d000)


 方法一:直接sudo apt-get install libqt4-sql-mysql ,这是Qt4的mysql驱动,就不用自己费劲编译了,不过可能会额外下载一些东西。

                 将 /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷贝到你的QtSDK sqldrivers目录下,我当时是直接用普通权限安装,目录为:~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers

   方法二:其实你也可以sudo apt-get download libqt4-sql-mysql,把包解压缩,然后把里面的so文件搜出来直接拷贝到那里。

如果不安装qtmysql驱动,则编译的时候会出现QSqlDatabase: QMYSQL driver not loaded错误,说明缺少qtmysql相关的库,安装上一般就可以了。

如果编译出现"QMYSQL: Unable to connect"错误,说明用户名或密码,或者ip不对导致不能连接上,设置正确即可。


你可能感兴趣的:(ubuntu下qt与mysql环境搭建)