求教大神 qt5编译mysql驱动问题

求教大神 qt5编译mysql驱动问题,第1张

注意编译器一定要和MYSQL的平台版本一致,32位的用32位的编译器编译,64位的用64位的编译器编译。

准备工作:MYSQL的目录:D:\SQL_Server\mariadb

Qt5.1.1的目录:C:\Qt

1. 先将D:\SQL_Server\mariadb中的include\和lib\文件夹复制到根目录(C:),因为后面make时路径不能有空格。

2. 打开QT5.1.1 for Desktop(MinGW 4.8)

cd C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql

qmake "INCLUDEPATH+=D:\SQL_Server\mariadb\include" "LIBS+=D:\SQL_Server\mariadb\lib\libmysql.lib" mysql.pro

mingw32-make

如果出现找不到mysql.h文件就用qtcreator打开mysql.pro文件,配置项目,然后编译,就会出现错误提示,把#include <mysql.h>改成#include <mysql/mysql.h>,编译就行了,或回到命令行再次执行mingw32-make即可.

3. 编译成功后。

进入到C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\plugins\sqldrivers目录下,选中qsqlmysql.dll和 qsqlmysqld.dll两个文件,

复制到C:\Qt\Qt5.1.1\5.1.1\mingw48_32\plugins\sqldrivers目录下。

qt程序动态打包步骤

1. 从可运行程序的文件中拿出可执行文件

2. 终端下使用ldd命令查看需要的连接库

例如 ldd + 可执行文件

3. 把ldd查询到的所有需要的库导出

4. 编写.sh文档(.sh文件命名必须与可执行文件名字一样例:可执行文件名 test, .sh 文件名为 test.sh)

.sh文件代码如下:

#!/bin/sh

appname=`basename $0 | sed s,\.sh$,,`

dirname=`dirname $0`

tmp="${dirname#?}"

if [ "${dirname%$tmp}" !="/" ]then

dirname=$PWD/$dirname

fi

LD_LIBRARY_PATH=$dirname

export LD_LIBRARY_PATH

$dirname/$appname $*

5. 把所用到的库,可执行文件, .sh文件放到同一目录下

6. 终端中进入这一目录,输入:

chmod +x test.sh

7. 执行程序点击.sh文件或者终端输入:

./test.sh

简单,首先安装好MYSQL数据库,然后再安装目录下 MySQL\MySQL Server 5.1\bin\libmySQL.dll 这个文件拷贝到 Qt5.1.1\5.1.1\mingw48_32\bin 下面就行了,Good luck


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存