centos 下Qt安装 mysql驱动(亲测可行)

前半部分没有试过,因为我的有mysql驱动,实在抱歉      

      1.预防万一,先安装一下mysql-devel(一定要装!)。 不安装的话后面编译会出现找不到-lmysqlclient的问题。

      2. 开始编译:

   cd $QTDIR/src/plugins/sqldrivers/mysql   //进入QT那个存放mysql驱动源码的目录``

   qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro  

//这一句中我修改一下了qt助手里的语句,因为我的mysql库的位置是在/usr/include/mysql,/usr/lib/mysql 中。
   
make //然后make一下

    3. 最后一步

   cd $QTDIR/src/plugins/sqldrivers/mysql //这里也是进入那个目录``
    make install    //生成, 在上面make那步好像也生成过的了,不过这一步还是要做一下··

    4. 完成

   你可以在/qtsdk-2009.05/qt/plugins/sqldrivers里找到一个刚生成的libqsqlmysql.so,这个就是mysql的驱动

 下面是我遇到的情况
   首先我的Linux系统,64位的Centos,Qt版本4.8.4安装方式前面博客说过了
   好了,现在先说遇到的问题,可以编译通过,就是执行报错:
   Available drivers: "QSQLITE" 

   QSqlDatabase: QMYSQL driver not loaded
   QSqlDatabase: available drivers: QSQLITE

    看到网上不知道是否是真的有用的,基本都说编译什么Mysql驱动,缺少libqsqlmysql.so,说的……………………不好评论,我是看不懂。

    但是我查证我的安装目录是有libqsqlmysql.so的,现在只能考虑是不是目录路径不对,但是我可以编译通过,就是执行报错,对此也表示怀疑,暂且就把目录路径都加到系统搜索路径(更改PATH环境变量,把库拷到/usr/lib64等等,没招了)。

    问题依然没有解决,原地踏步,下面是关键。

    分析上面的错误:QSQLITE可用,但是QMYSQL 不可用,

   再进一步分析,这两个的依赖库(libqsqlite.so  libqsqlmysql.so)是存在目录都是相同的,就开始怀疑是库所依赖的东西出了问题,现在ldd  libqsqlmysql.so显示:

   

    果然有问题,看到上面的libmysqlclient.so.18 => not found,这就是问题所在,下面就开始解决:

    (1)先找到libmysqlclient.so.18 的所在路径,find / -name libmysqlclient.so.18 

     (2)  vim /etc/ld.so.conf 在最后添加一行(就是刚刚的搜索到的路径),意告诉系统libmysqlclient.so.18去那个路径下寻找。

    (3)ldconfig  必须导入刚刚的配置。

     (4)  再次运行ldd  libqsqlmysql.so显示不再是not   found:

     好了,现在回到关键问题,执行Qt程序,惊喜,成功了。关于/etc/ld.so.conf 的介绍博客有介绍。

     

原文地址:https://www.cnblogs.com/cy568searchx/p/3623415.html