【吐血跪求】Qt怎么才能成功编译Mysql的驱动!

秋千坠丶 2013-11-11 03:51:35
如题
硬件环境:
Windows 7旗舰版 , 4G内存 ,64位系统
软件环境:
VS 2010 ,Qt 4.8.0 - OpenSource - vs2010 ,MySql 5.5.27_win64

本身电脑上已经有VS 2010 以及 Qt 还有Qt的VS插件了,然后按照网上的教程,先安装MySql,其中Mysql的路径重新改了,没有了空格,安装的时候也勾选了C库和支持库。安装完以后,我把这两句话加入在了C:\Qt\4.8.0\src\plugins\sqldrivers\mysql路径中的mysql.pro的第二行中:
INCLUDEPATH += "C:/MySQL/include"
LIBS += "C:/MySQL/lib/libmysql.lib"


然后因为VS的命令提示输入qmake无效,所以用的是 Qt自带的Qt 4.8.0 Command Prompt 命令提示工具,然后进入到了C:\Qt\4.8.0\src\plugins\sqldrivers\mysql中,敲下命令:
qmake -o Makefile mysql.pro
这句话敲完以后,没有任何提示,在当前目录下成功生成了Makefile文件以及其他的一些文件。
然后当我再执行namke时,就报错了:


在另一台电脑上错误更离谱,报了一堆无法解析的外部符号的错误,唉,这问题纠结了我3天了,都快吐血了,跪求大神指点!!!!




...全文
555 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
沨_ 2014-05-08
  • 打赏
  • 举报
回复
本人也遇到过该错误,花了两天时间解决了,若系统是64位的,编译器版本是32位的,mysql官网下载32位的libmysql.dll,libmysql.lib这两个文件就可以了
Tan_yixiu 2013-12-26
  • 打赏
  • 举报
回复
请问楼主最后怎样解决的呢? 编译器版本是32位的,而MySql是64位,把myslq换成32位的吗?
crazyQter 2013-11-13
  • 打赏
  • 举报
回复
已经放弃编译了,直接用数据源
ying_593254979 2013-11-13
  • 打赏
  • 举报
回复
网上有编译好的,下载直接用就行了。 自己编译应该也比较简单。指定LIB路径即可。 前一段时间,编译ARM版本的Mysql稍微有点复杂。
秋千坠丶 2013-11-13
  • 打赏
  • 举报
回复
引用 11 楼 u011788651 的回复:
已经放弃编译了,直接用数据源
问题已经解决了,出现一堆无法解析的外部符号的原因是我的编译器版本是32位的,而MySql是64位的,所以出现了这个错误,谢谢大家的热心解答了。
RabinSong 2013-11-13
  • 打赏
  • 举报
回复
找到问题就好
秋千坠丶 2013-11-13
  • 打赏
  • 举报
回复
引用 9 楼 Inhibitory 的回复:
http://www.cppblog.com/biao/archive/2011/10/29/159296.html 以前编译MySql驱动的步骤,照着做就会成功。
问题已经解决了,出现一堆无法解析的外部符号的原因是我的编译器版本是32位的,而MySql是64位的,所以出现了这个错误,谢谢大家的热心解答了。
秋千坠丶 2013-11-13
  • 打赏
  • 举报
回复
引用 8 楼 rbllbr123 的回复:
这个是我之前记的一个笔记 发给你参考下 qt 编译mysql插件 首先确保qt安装程序都安装在c盘上 其他盘符无效 首先以记事本打开C:\Qt\4.8.0\src\plugins\sqldrivers\mysql文件 写入 "INCLUDEPATH+=D:\mysqldev\include" "LIBS+=D:\mysqldev\lib\opt\libmysql.lib" 然后在 cd C:\Qt\4.8.0\src\plugins\sqldrivers\mysql qmake "INCLUDEPATH+=D:\mysqldev\include" "LIBS+=D:\mysqldev\lib\opt\libmysql.lib" mysql.pro mingw32-make 结束之后在此目录下面 debug和release目录下就有编译好的dll了然后拷贝到如图所示目录即可 注意 要加入环境变量 C:\Qt\qtcreator-2.4.1\mingw\bin;C:\Qt\4.8.0\bin; 否找不到qmake和mingw32-make命令
问题已经解决了,出现一堆无法解析的外部符号的原因是我的编译器版本是32位的,而MySql是64位的,所以出现了这个错误,谢谢大家的热心解答了。
秋千坠丶 2013-11-13
  • 打赏
  • 举报
回复
引用 6 楼 LazyDreamHunter 的回复:
那你为何不用sqlite呢,
引用 6 楼 LazyDreamHunter 的回复:
那你为何不用sqlite呢,
问题已经解决了,出现一堆无法解析的外部符号的原因是我的编译器版本是32位的,而MySql是64位的,所以出现了这个错误,谢谢大家的热心解答了。
rbllbr123 2013-11-12
  • 打赏
  • 举报
回复
这个是我之前记的一个笔记 发给你参考下
qt 编译mysql插件
首先确保qt安装程序都安装在c盘上 其他盘符无效
首先以记事本打开C:\Qt\4.8.0\src\plugins\sqldrivers\mysql文件 写入
"INCLUDEPATH+=D:\mysqldev\include" "LIBS+=D:\mysqldev\lib\opt\libmysql.lib"

然后在
cd C:\Qt\4.8.0\src\plugins\sqldrivers\mysql

qmake "INCLUDEPATH+=D:\mysqldev\include" "LIBS+=D:\mysqldev\lib\opt\libmysql.lib" mysql.pro

mingw32-make

结束之后在此目录下面 debug和release目录下就有编译好的dll了然后拷贝到如图所示目录即可

注意 要加入环境变量 C:\Qt\qtcreator-2.4.1\mingw\bin;C:\Qt\4.8.0\bin;
否找不到qmake和mingw32-make命令
Inhibitory 2013-11-12
  • 打赏
  • 举报
回复
http://www.cppblog.com/biao/archive/2011/10/29/159296.html 以前编译MySql驱动的步骤,照着做就会成功。
秋千坠丶 2013-11-11
  • 打赏
  • 举报
回复
引用 6 楼 LazyDreamHunter 的回复:
那你为何不用sqlite呢,
因为以后公司有个项目需要用到大一点的数据库,以后迟早得面对编译数据库驱动这个问题的,唉,现在想先练练手就干脆直接用MySql了
RabinSong 2013-11-11
  • 打赏
  • 举报
回复
那你为何不用sqlite呢,
秋千坠丶 2013-11-11
  • 打赏
  • 举报
回复
引用 4 楼 LazyDreamHunter 的回复:
你把你要编译的代码给我,我帮你编译下,
谢谢啦,不过我不是要编译代码,而是要自己编译Qt的MySql驱动,没有这个驱动我用Qt写的程序,连最基本的数据库都连接不了。唉
RabinSong 2013-11-11
  • 打赏
  • 举报
回复
你把你要编译的代码给我,我帮你编译下,
秋千坠丶 2013-11-11
  • 打赏
  • 举报
回复
引用 1 楼 LazyDreamHunter 的回复:
为什么不用QCreator集成开发环境, 你是要编译mysql,为什么还要用已编译好的libmysql.lib LIBS += "C:/MySQL/lib/libmysql.lib",这一句应该去掉
唉,用QCreator的方法编译驱动,还是报了一堆无法解析的外部符号的引用错误!
秋千坠丶 2013-11-11
  • 打赏
  • 举报
回复
引用 1 楼 LazyDreamHunter 的回复:
为什么不用QCreator集成开发环境, 你是要编译mysql,为什么还要用已编译好的libmysql.lib LIBS += "C:/MySQL/lib/libmysql.lib",这一句应该去掉
额,libmysql.lib不是已经编译好的驱动,是QT编译mysql驱动是需要的库文件,QCreator开发环境集成了mysql数据库的Qt驱动么?不是说现在Qt要连数据库都要自己编译驱动么?不用QCreator原因是比较习惯了VS的工具。嘿嘿
RabinSong 2013-11-11
  • 打赏
  • 举报
回复
为什么不用QCreator集成开发环境, 你是要编译mysql,为什么还要用已编译好的libmysql.lib LIBS += "C:/MySQL/lib/libmysql.lib",这一句应该去掉

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧