zoukankan      html  css  js  c++  java
  • 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 的介绍博客有介绍。

         

  • 相关阅读:
    C语言中 指针和数组
    C语言中 指针与结构体
    void指针、NULL指针和未初始化指针
    C语言中 指针、引用和取值

    别--------
    快速开发 jQuery 插件的 10 大技巧(转)
    采用预取(Prefetch)来加速你的网站(转)
    HttpWatch工具简介及使用技巧(转)
    iScroll框架的使用和修改
  • 原文地址:https://www.cnblogs.com/cy568searchx/p/3623415.html
Copyright © 2011-2022 走看看