
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
下载mysql
C链接库
选择C的链接库
2
将C的连接库解压到到C:/mysql
目录下
3
我的QT
安装在C盘目录下,版本号是4.8.6
所以打开目录
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
4
将C:/mysql/lib/libmysql.dll
和C:/mysql/lib/libmysql.lib
复制到此处。
5
编辑目录下的mysql.pro文件
添加
INCLUDEPATH+="C:/mysql/include"
LIBS+="C:/mysql/lib/opt/libmysql.lib"
运行qt的控制台窗口,方便使用qmake
切换到目录下
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
执行qmake
运行VS2010的控制台工具
切换到
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
目录下
执行nmake
和nmake
release
是nmake不是make
这样在C:\QT\4.8.6\src\plugins\sqldrivers\mysql
目录下的debug
目录和release
目录下分别会产生
qsqlmysqld4.dll
qsqlmysqld4.lib
qsqlmysql4.dll
qsqlmysql4.lib
将上面提到的四个文件复制到
C:\QT\4.8.6\plugins\sqldrivers
最后把
C:\mysql\lib\opt\libmysql.dll
C:\mysql\lib\opt\libmysql.lib
复制到
C:\Windows\system32\
目录下。
最后测试mysql
可不可以在qt中正常使用
新建一个qt
控制台项目
输入以下代码
#include
<QCoreApplication>
#include
<QDebug>
#include
<qstring.h>
#include
<qstringlist.h>
#include
<qsql.h>
#include
<qsqldatabase.h>int
main(int
argc,
char
*argv[])
{
QCoreApplication
a(argc,
argv)
qDebug()
<<
"Available
drivers:"
QStringList
drivers
=
QSqlDatabase::drivers()qDebug()
<<
driversreturn
a.exec()
}
运行测试一下,看看有没有图片中红圈圈中的两项内容
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)