Qt在Windows和Linux下使用MySQL

来源:互联网 发布:2345软件怎么样 编辑:程序博客网 时间:2024/06/11 06:45
        最近在用 Qt 做东西,要用到数据库。开始是用 SQLite,还好没什么问题,用着很顺利。后来要改用 MySQL,就被折磨了几天。
        首先当然是先安装好 Qt,配置好MySQL,建库建表这些。下面分别介绍一下在 Windows 和 Linux 下 Qt 使用 MySQL。

        先记录一下在 Windows 下, Qt 5.5.1 msvc2010, MySQL 5.7.12。
        网上看到 Qt 以前版本要下载 src,再编译出dll。现在在 Qt 5.5.1 的 plugins\sqldrivers 里面已经有 qsqlmysql.dll qsqlmysqld.dll qsqlmysqld.pdb 这些,省不少事。
        这时如果直接用,还是不行的,在 QSqlDatabase::addDatabase("QMYSQL"); 这会报 QSqlDatabase: QMYSQL driver not loaded
        解决办法很简单:把 MySQL 安装目录下的 lib\libmysql.dll 复制到 Qt 安装目录下的 bin 目录中即可。

        再记录一下在 Linux 下, Qt 5.5.1, MySQL 5.6.24。
        在 Qt 5.5.1 的 plugins\sqldrivers 里面已经有 libqsqlmysql.so,这时直接用时,与 Windows 一样,在 QSqlDatabase::addDatabase("QMYSQL"); 这会报 QSqlDatabase: QMYSQL driver not loaded

        在 plugins\sqldrivers 目录 ldd libqsqlmysql.so,会看到 libmysqlclient_r.so.16 => not found 等。

        解决办法

        sudo apt-get install libqt4-sql-mysql,会安装 Qt4 的 MySQL 驱动,或者 sudo apt-get download libqt4-sql-mysql,解压找到so也行。
        sudo apt-get install libqt5sql5-mysql,会安装 Qt5 的 MySQL 驱动,或者 sudo apt-get download libqt5sql5-mysql,解压找到so也行。
        这种方法别人可能可行,我这用的提示版本不一致。只好用下面这个办法。
        官网下载源码编译
        不用完全下载,只要 http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/ 里面的 qtbase-opensource-src, 那个 60M 即可。
        提取出来在 qtbase.../src/plugins/sqldrivers/mysql 里面,qmake, make。qmake 如果找不到,要带上 Qt 安装目录 bin 路径。
        make 过程中,
        有人会出现
        /usr/bin/ld: cannot find -lz,是没有安装zlib-devel,直接yum install zlib-devel搞定。
        本菜鸟遇到
        /usr/bin/ld: cannot find -lssl
        /usr/bin/ld: cannot find -lcrypto
        先 locate libssl.so 或者 find 找到 libssl.so.1.0.0 所在目录,和 libcrypto.so.1.0.0 所在目录
        在找到目录下,ln -s libssl.so.1.0.0 libssl.so 和 ln -s libcrypto.so.1.0.1 libcrypto.so
        这是再 make 就没有问题了。
        成功后,找到生成的 libqsqlmysql.so,应该是在源码 qtbase.../plugins/sqldrivers 目录下。复制到 Qt 安装目录相应位置。
        这时再 ldd libqsqlmysql.so 查看就没有问题了。
0 0
原创粉丝点击