Qt编译MySQL驱动

最近项目用到mysql数据库,程序是在Qt中开发的,在网上找了资料,随便写了两句,

myDB = new QSqlDatabase(QSqlDatabase::addDatabase("QMYSQL"));
myDB->setHostName("192.168.1.6");
myDB->setDatabaseName("KaoQingJi");
myDB->setPort(3306);
myDB->setUserName("root");
myDB->setPassword("123456");
myDB->open();

程序运行之后报如下错误
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3

很明显Qt没有mysql的驱动,好自己动手编译吧;

1.首先安装QtSdk;
首先说明下Qt版本,我使用的版本是诺基亚发布的最后一个SDK版本,文件名为QtSdk-offline-win-x86-v1_2_1.exe,此版本安装完毕后包括Qt4.7.4和Qt4.8.1,大家在安装的时候注意下,由于要编译mysql的驱动,因此安装此sdk包时,不要选择默认的Default,要选择Custom进行安装,因为Default在安装的时候是不安装QtSource的,选择Custom后进行简单的配置,记得一定要选择QtSource,这个包里面就有支持Mysql的Qt驱动源码,一路点下去就会自动安装。

此版本的Qt下载地址如下:

http://pan.baidu.com/share/link?shareid=258560&uk=1042049493

2.安装mysql
我选择的mysql的版本为mysql-5.1.51选择Microsoft Windows 32. (Windows Installer format) 程序就可以,其他版本的mysql我没试过,应该也可以的,就是太大了。
下载地址:http://downloads.mysql.com/archives.php?p=mysql-5.1&v=5.1.51

安装的时候路径中尽量不要有空格,把所有的空格去掉;

安装完毕后我们需要的libmysql.dll文件就在你的安装路径下面的D:MySQLMySQL5.1libopt下面;这个是我的路径,你的路径可能不同,但这个文件肯定能找到的,

还需要另外一个工具,mingw-utils-0.4-1.zip,此工具用于将libmysql.dll转换成libmysql.lib文件,为什么需要转换呢?因为Qt用的编译器是MingW编译器,此编译器不能直接使用dll文件,

下载地址:

http://code.google.com/p/easymingwtoolkit/downloads/detail?name=mingw-utils-0.4-1.zip&can=2&q=

下载完毕后,打开此包,把bin文件下的reimp.exe文件解压到Qt安装路径下的mingw编译器下,具体路径为C:QtSDKmingwbin

 

然后再开始菜单中找到QtSDk->Desktop->Qt 4.8.1 for Desktop (MinGW);打开此终端
打开之后就跟cmd的黑屏一样的,这时切换目录到mysql目录中libmysql.dll所在文件夹,即D:MySQLMySQL5.1libopt目录下;

输入一下命令进行dll转换,

cd D:MySQLMySQL5.1libopt

reimp -d libmysql.lib (生成 libmysql.def文件)

dlltool -k -d libmysql.def -l libmysql.a (生成 libmysql.a文件)

上面两条命令执行完毕后,就得到我们需要的文件了libmysql.a

这是切换路径到C:QtSDKQtSources4.8.1srcpluginssqldriversmysql目录下面,此路径下面就是mysql的Qt源码;

cd C:QtSDKQtSources4.8.1srcpluginssqldriversmysql

 

qmake -o Makefile "INCLUDEPATH+=D:/MySQL/MySQL5.1/include" "LIBS+=D:/MySQL/MySQL5.1/lib/opt/libmysql.a" mysql.pro

上面这条命令在输入的时候,大家要注意路径是否跟自己的一致。
如果你的mysql在安装的时候有空格,可以将bin目录和include这两个目录拷贝到c盘的根目录,然后输入路径就可以了

把D:MySQLMySQL5.1libopt目录下的libmysql.dll文件拷贝到C:QtSDKDesktopQt4.8.1mingwbin,如果不拷贝,编译的时候会提示找不到llibmysql文件

上面命令执行完毕后,
然后
make
make release

不报错的话,就会在release目录和debug目录中分别生成libqsqmysqld4.a和libqsqmysql4.dll文件,

把这四个文件拷贝到C:QtSDKDesktopQt4.8.1mingwpluginssqldrivers目录下面。

到此,Qt下,mysql的驱动就编译好了。。。

 

转载于:https://www.cnblogs.com/zheguzai/p/3445027.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Qt 5.15.2与MySQL 8.0.33驱动程序编译在一起,您可以按照以下步骤进行操作: 1. 首先,确保您的系统中已经安装了MySQL 8.0.33数据库。如果没有安装,请先从MySQL官方网站下载并安装。 2. 下载Qt 5.15.2的源代码,并解压到一个合适的文件夹中。 3. 进入Qt源代码文件夹,在命令行中运行以下命令以确保已经安装了必要的依赖项: ``` ./configure make ``` 4. 安装MySQL的开发包以获取必要的头文件和库文件。在Ubuntu系统上,可以使用以下命令进行安装: ``` sudo apt-get install libmysqlclient-dev ``` 5. 在Qt源代码文件夹中,进入`qtbase/src/plugins/sqldrivers/mysql`文件夹。 6. 打开`mysql.pro`文件,并进行以下更改: - 添加`CONFIG += c++11`以启用C++11支持(如果尚未添加)。 - 添加`LIBS += -lmysqlclient_r`以链接MySQL客户端库。 7. 在命令行中,进入`mysql`文件夹,并执行以下命令以编译MySQL驱动: ``` qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu -lmysqlclient_r" mysql.pro make ``` 8. 编译成功后,将生成的`libqsqlmysql.so`文件复制到Qt安装目录下的`plugins/sqldrivers`文件夹中。 9. 完成上述步骤后,重新编译和构建您的Qt项目,应该就可以使用MySQL 8.0.33驱动程序了。 请注意,上述步骤适用于Ubuntu系统,如果您使用其他操作系统,请相应地修改命令和路径。同时,确保您安装的QtMySQL版本与本回答中提到的版本相匹配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值