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
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 查看就没有问题了。
首先当然是先安装好 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
- Qt在Windows和Linux下使用MySQL
- Qt 在windows和linux下的安装文件
- Qt程序在windows 和 linux 下打包发布
- 在Windows和Linux下使用LaTeX
- Qt 5在windows和Mac下的安装使用
- linux下QT在windows下运行
- QT在windows下编译mysql驱动
- 在Linux下安装和使用MySQL
- 在Linux下安装和使用MySQL
- 在Linux下安装和使用MySQL
- 在Linux下安装和使用MySQL
- 在Linux下安装和使用MySQL
- 在Linux下安装和使用MySQL
- 在Linux下安装和使用Mysql
- 在Linux下安装和使用MySQL
- 在Linux下安装和使用MySQL
- 在Linux下安装和使用MySQL
- 在Linux下安装和使用MySQL
- java的环境配置以及Sublime Text 3 搭建java编译环境--java学习二三事(一)
- easyUI combox 省市县3级联动
- Qt.fontFamilies 字体枚举
- Android 水波纹点击效果(Ripple Effect)
- ie下css兼容问题
- Qt在Windows和Linux下使用MySQL
- QT学习笔记(丁松林课程讲解)
- android5.0 按键调节音量详解
- 软件需求分析
- kettle初探
- mysql 实现分类统计
- 电子商务网站购物车设计
- Redis监控软件RedisLive安装
- LeetCode Add Two Numbers