「Qt」 mac环境配置qt的mysql驱动

「Qt」 mac环境配置qt的mysql驱动,第1张

Qt项目里用到了mysql,运行后报错:

查阅资料知道需要配置mysql驱动,本以为几分钟解决的事情,没想到开启了恶魔经历,整整两天时间,mmp!

Stop! 废话别说啦,入正题:

首先,Qt &mysql的安装和环境配置就略了,一搜一大把。

不过注意两点:

先进入到/Users/ing/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers目录下,执行:

这里确保qmake用的qt里的就行

其实你可以配置下qt相关的环境变量,在bash_profile里添加:

然后,source ~/.bash_profile ,还有别忘了 source ~/.zshrc

执行成功的话会输出:

根据提示 依次执行:

make sub-mysql

make

make install

进入/Users/ing/Qt5.14.2/5.14.2/clang_64/plugins/sqldrivers下执行,查看链接库:

输出:

此时,运行qt程序 依旧报错。

根据查阅的资料,问题出在

网友们所说的“诡异”的路径那一行(你的输出可能和我的不一样的,但问题应该一样) ,也就是有 libmysqlclient.21.dylib 这行。

另外查了下 @repath 的含义 意思是说 不能明确的指向。。。所以 这里就需要将libmysqlclient.21.dylib 指向扳到正确的道路。

方法就是利用 install_name_tool -change

执行

这里一定要注意顺序,刚开始我就是顺序搞错了,死活就是不行,最后跑到官方论坛里用蹩脚的英语发帖求教也无果,最后还是一遍的重试,一遍的检查才发现的。一天就这么浪费了。

此刻在运行qt程序 ,就不会再报上面的错误了。

撒花,礼花搞起~~~

1.安装qt的时候还没有安装mysql.也就是说应该在安装qt之前安装mysql数据库.这个错误由QSqlDatabase抛出db.lastError().text()

2.将以前编译的mysql驱动程序拷入qt文件夹位置放错.

3.你的程序写错了.

4."driver not loaded" 是由query.lastError().text()抛出的错误.

5.gcc版本不一样(本机和目标机).

既然知道原因了,解决起来也就非常轻松了.

1.重新安装qt,重新安装mysql驱动

2和3的解决方法我就没有什么好说的了.

4. 说明你的query在创建的时候没有和qsqldatabase建立起关联.正确的方法是声明qsqldatabase后就声明query.如果你希望一 个连接能够和多个query关联使用如下语法:QSqlQuery query(db),db是QSqlDatabase的实例名.

5.同步gcc版本咯..

首先,运行如下测试代码:

//don't forget about QT+= sql

qDebug() <<QSqlDatabase::drivers()

QSqlDatabase db( QSqlDatabase::addDatabase( "QMYSQL" ) )

qDebug() <<db.lastError()

按照这三点顺序:

1.#include <QtSql/QMYSQLDriver>去掉

然后重新运行程序

根据提示

2.如果找不到QMYSQL驱动,那么你需要先编译这个驱动。先到Plugins/SqlDriver下看看有没有qsqlmysql.*与qsqlmysqld.*的动态库文件。

如果没有,说明你没有编译mysql驱动插件。如果有但是连不上驱动,说明你的动态库没有放在程序的目录下(实质是没有放在程序可搜索的目录里),把这些动态库放在程序目录,不要少mysql的动态库(这个不是QT编译的那个QSQLMSQL的那个,是MYSQL自己的都太库)。

3.编译mysql驱动插件。

打开你的QT助手(Qt Assistant),查找这个“SQL Database Drivers”。里面有编译的方法。

注意了这个编译需要你提供MySql的头文件和库文件。你说的mysql.h即mysql的头文件了。如果你没有,去下载MYSQL的SDK。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7648776.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存