找回密码
 立即注册
收起左侧
楼主: yafeilinux

第22篇 数据库(二)编译MySQL数据库驱动

106
回复
71467
查看
[复制链接]
累计签到:29 天
连续签到:1 天
2013-12-17 18:38:45 显示全部楼层
肯定安装了,64位的,自定义安装的,头文件和lib都有
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-12-17 18:46:13 显示全部楼层
yafeilinux 发表于 2013-12-17 16:55
安装mysql了没有。

安装了,64位的,H:\DCIM\Camera\IMG_20131217_184240_004.jpg
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-12-17 19:51:16 显示全部楼层
我是在win7上面编译的,会不会是不能调用dll的库必须转换为.a吗?我再尝试下
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-12-17 21:26:33 显示全部楼层
yafeilinux 发表于 2013-12-17 16:55
安装mysql了没有。

我编译时报错,信息如下:
c:/qt/qt5.2.0/tools/mingw48_32/bin/../lib/gcc/i686-w64-mingw32/4.8.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -llibmysql
collect2.exe: error: ld returned 1 exit status
Makefile.Debug:80: recipe for target '\plugins\sqldrivers\qsqlmysqld.dll' failed
mingw32-make[1]: *** [\plugins\sqldrivers\qsqlmysqld.dll] Error 1
mingw32-make[1]: Leaving directory 'C:/Qt/Qt5.2.0/5.2.0/Src/qtbase/src/plugins/sqldrivers/build-mysql-Desktop_Qt_5_2_0_MinGW_32bit-Debug'
makefile:38: recipe for target 'debug-all' failed
mingw32-make: *** [debug-all] Error 2
20:54:03: 进程"C:\Qt\Qt5.2.0\Tools\mingw48_32\bin\mingw32-make.exe"退出,退出代码 2 。
Error while building/deploying project mysql (kit: Desktop Qt 5.2.0 MinGW 32bit)
当执行步骤 'Make'时
20:54:03: Elapsed time: 00:00.
能帮忙看下什么原因吗?
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2013-12-18 15:32:54 显示全部楼层
xueqiang508 发表于 2013-12-17 21:26
我编译时报错,信息如下:
c:/qt/qt5.2.0/tools/mingw48_32/bin/../lib/gcc/i686-w64-mingw32/4.8.0/../. ...

这个在Qt 5.2上面还没有测试过,等有时间我做一下吧。
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-12-18 15:42:31 显示全部楼层
yafeilinux 发表于 2013-12-18 15:32
这个在Qt 5.2上面还没有测试过,等有时间我做一下吧。

我在使用Qt5.2编译Mysql驱动插件时,调用Mysql的dll时一直没有成功,编译总是报错,报错的内容都是头文件里定义的函数没有被定义;这是什么原因呢?lib不能用还是我下的Qt版本不对?我下的是qt-windows-opensource-5.2.0-android-x86-win32-offline.exe?
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2013-12-18 15:46:54 显示全部楼层
xueqiang508 发表于 2013-12-18 15:42
我在使用Qt5.2编译Mysql驱动插件时,调用Mysql的dll时一直没有成功,编译总是报错,报错的内容都是头文件 ...

教程中用的是Qt 4.8.5,没有出现问题,按道理Qt 5.2应该没有问题的,因为这个还没具体测试过,不好说。
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-12-18 16:57:24 显示全部楼层
yafeilinux 发表于 2013-12-18 15:46
教程中用的是Qt 4.8.5,没有出现问题,按道理Qt 5.2应该没有问题的,因为这个还没具体测试过,不好说。 ...

g++ -shared -Wl,--out-implib,\plugins\sqldrivers\libqsqlmysqld.a -o \plugins\sqldrivers\qsqlmysqld.dll .obj/debug/main.o .obj/debug/qsql_mysql.o .obj/debug/moc_qsql_mysql_p.o  -LC:/MySql/lib/ -llibmysql -LC:\Qt\Qt5.2.0\5.2.0\mingw48_32\lib -lQt5Sqld -lQt5Cored
.obj/debug/qsql_mysql.o: In function `codec':
C:\Qt\Qt5.2.0\Sources\qtbase\src\plugins\sqldrivers\build-mysql-Desktop_Qt_5_2_0_MinGW_32bit-Debug/../../../sql/drivers/mysql/qsql_mysql.cpp:223: undefined reference to `mysql_character_set_name@4'
.obj/debug/qsql_mysql.o: In function `qMakeError':
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-12-18 16:58:28 显示全部楼层
xueqiang508 发表于 2013-12-18 16:57
g++ -shared -Wl,--out-implib,\plugins\sqldrivers\libqsqlmysqld.a -o \plugins\sqldrivers\qsqlmysqld ...

这是编译报的错,主要是报dll中的函数没有声明定义,但是这种隐式调用,只要有对应的头文件和lib库,运行时用Dll就应该可以了,而我的lib库加载应该是正确的,纠结啊
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-12-19 13:37:49 显示全部楼层
yafeilinux 发表于 2013-12-18 15:46
教程中用的是Qt 4.8.5,没有出现问题,按道理Qt 5.2应该没有问题的,因为这个还没具体测试过,不好说。 ...

已经OK了,是MySql版本问题,我换成32位就OK了,已经可以连接数据库了
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2013-12-19 13:54:30 显示全部楼层
xueqiang508 发表于 2013-12-19 13:37
已经OK了,是MySql版本问题,我换成32位就OK了,已经可以连接数据库了

嗯。能用了就好!
回复 支持 反对

使用道具 举报

累计签到:8 天
连续签到:1 天
2014-3-31 16:33:41 显示全部楼层
支持一下,编译这一块是我的心病啊
回复 支持 反对

使用道具 举报

累计签到:14 天
连续签到:1 天
2014-4-2 18:00:31 显示全部楼层
问下楼主,我运行的时候说是要指定执行档,我指定的bin目录下的qmake.exe后,控制台一闪而过
D:\Qt\4.7.2\bin\qmake.exe 启动中...
D:\Qt\4.7.2\bin\qmake.exe 退出, 代码: 2
这是什么原因?
感谢
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2014-4-6 09:25:50 显示全部楼层
xtgss007 发表于 2014-4-2 18:00
问下楼主,我运行的时候说是要指定执行档,我指定的bin目录下的qmake.exe后,控制台一闪而过
D:\Qt\4.7.2\b ...

是用的Qt的Command Prompt编译的吗?
回复 支持 反对

使用道具 举报

累计签到:14 天
连续签到:1 天
2014-4-13 00:07:38 显示全部楼层
yafeilinux 发表于 2014-4-6 09:25
是用的Qt的Command Prompt编译的吗?

感谢亚飞的及时回答,已解决,非常感谢yafei,我的qt及c++的启蒙老师
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2014-4-17 10:23:31 显示全部楼层
真心感谢你!根据你的讲解,成功编译好驱动,我同学他们花了一天的时间都没有搞好,应该让更多的人知道这么好的网站
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2014-4-23 22:54:25 显示全部楼层
本帖最后由 albzcj 于 2014-4-23 23:35 编辑

执行后窗口出现:"QMYSQL  driver not loaded"可是我mysql已经装的 ,用的是Qt5.2   linux下
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2014-4-24 21:13:20 显示全部楼层
albzcj 发表于 2014-4-23 22:54
执行后窗口出现:"QMYSQL  driver not loaded"可是我mysql已经装的 ,用的是Qt5.2   linux下 ...

可能是安装的不对。
回复 支持 反对

使用道具 举报

累计签到:12 天
连续签到:1 天
2014-9-5 12:52:34 显示全部楼层
yafeilinux 发表于 2013-9-22 09:25
建议先使用Qt 4.8版本试试。

上一节我通过QT5遍历驱动输出的是
Available drivers:
"QSQLITE"
"QMYSQL"
"QMYSQL3"
"QODBC"
"QODBC3"
"QPSQL"
"QPSQL7"

是不是就不需要编译MySQL的驱动了
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2014-9-25 22:52:19 显示全部楼层
elvis_w 发表于 2014-9-5 12:52
上一节我通过QT5遍历驱动输出的是

是不是就不需要编译MySQL的驱动了

嗯,你可以编写实际程序测试一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了