【吐血大跪求】QT编译mysql驱动出现问题

nzncxc 2010-10-27 09:24:26
cmd语句为:
cd C:\Qt\qt\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\MySQL\include" "LIB+=C:\MySQL\lib\opt\libmysql.lib" mysql.pro
运行后提示:
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.

然后没管,继续运行
C:\Qt\mingw\bin\mingw32-make

设置了bin目录的path,提示错误
C:\Qt\qt\src\plugins\sqldrivers\mysql>mingw32-make
mingw32-make -f Makefile.Debug all
mingw32-make[1]: Entering directory `C:/Qt/qt/src/plugins/sqldrivers/mysql'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -mthreads -Wl -shared -Wl,--out-implib,c:\Qt\qt\plugins\sqldrivers\libqsqlmys
qld4.a -o ..\..\..\..\plugins\sqldrivers\qsqlmysqld4.dll tmp/obj/debug_shared/ma
in.o tmp/obj/debug_shared/qsql_mysql.o tmp/obj/debug_shared/moc_qsql_mysql.o -L
"c:\Qt\qt\lib" -L"c:\Qt\qt\lib" tmp\obj\debug_shared\qsqlmysqld_resource_res.o -
llibmysql -lQtSqld4 -lQtCored4
c:/qt/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot
find -llibmysql
collect2: ld returned 1 exit status
mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysqld4.dll] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/qt/src/plugins/sqldrivers/mysql'
mingw32-make: *** [debug-all] Error 2


怎么回事?

...全文
773 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ptsntwsz 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
引用 11 楼 的回复:
引用 10 楼 的回复:
把libmysql.dll文件放到....desktop/qt/4.8.0/mingw/bin这里,产生警告是因为路径里你用了反斜杠


我碰到的问题是下面这样的提示:

错误提示:
……
正在创建库 debug\qsqlmysqld4.lib 和对象 debug\qsqlmysqld4.exp
qsql_mysql.obj ……
[/Quote]

Qt路径是:D:\QtSDK\Desktop\Qt\4.8.1\msvc2010\src\plugins\sqldrivers\mysql
其中src文件夹本来是没有的,是下载了相应版本的源代码,然后从里面把整个文件夹拷贝过来的。

首先是qmake,我的是这样的:
qmake "INCLUDEPATH+=D:\MySQL\include" "LIBS+=D:\MySQL\lib\libmysql.lib" mysql.pro
其中include和lib文件夹都是从MySQL文件夹下的,MySQL Server 5.5文件夹下拷贝出来的。
接下来就是nmake,然后就出现上面的错误了。

尝试过把libmysql.dll文件放到上面那个Qt目录下,或者其中的debug文件夹下,或者System32下,都没有成功,把D:\MySQL\lib加入环境变量也没有成功。

用Qt的MinGW也没有成功,显示reimp,然后dlltool,也是按照步骤来,最后用mingw32-make的时候,就是一堆引用错误。
ye667788 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
引用 10 楼 的回复:
把libmysql.dll文件放到....desktop/qt/4.8.0/mingw/bin这里,产生警告是因为路径里你用了反斜杠


我碰到的问题是下面这样的提示:

错误提示:
……
正在创建库 debug\qsqlmysqld4.lib 和对象 debug\qsqlmysqld4.exp
qsql_mysql.obj : error LNK201……
[/Quote]
你说下你的步骤?看看有没有不对的地方~我花了一整天的时间才搞定生成mysql驱动
ptsntwsz 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
把libmysql.dll文件放到....desktop/qt/4.8.0/mingw/bin这里,产生警告是因为路径里你用了反斜杠
[/Quote]

我碰到的问题是下面这样的提示:
[Quote=错误提示:]
……
正在创建库 debug\qsqlmysqld4.lib 和对象 debug\qsqlmysqld4.exp
qsql_mysql.obj : error LNK2019: 无法解析的外部符号 _mysql_fetch_field@4,该符号
在函数 "public: bool __thiscall QMYSQLResultPrivate::bindInValues(void)" (?bindI
nValues@QMYSQLResultPrivate@@QAE_NXZ) 中被引用
……
……(一堆无法解析的外部符号,都是关于mysql的)
[/Quote]
都是按照网上以及帮助文档中说的来做的,然后加环境变量、将dll拷到目录下等方法都试过了,一直是上面的错误,用MinGW也试过了,也是类似的错误。

希望指点下,谢谢了!
ye667788 2012-06-14
  • 打赏
  • 举报
回复
把libmysql.dll文件放到....desktop/qt/4.8.0/mingw/bin这里,产生警告是因为路径里你用了反斜杠
ptsntwsz 2012-06-14
  • 打赏
  • 举报
回复
这个文章已经没有了啊。。。
http://student.csdn.net/space.php?uid=32341&do=blog&id=10663
能不能麻烦lz讲一下方法,这个问题纠结了好几天了,网上各种办法都试遍了。。。。
谢谢!
gemfield 2011-05-25
  • 打赏
  • 举报
回复
bluepuzzle 2010-10-27
  • 打赏
  • 举报
回复
你看看这篇帖子
http://www.qtcn.org/bbs/read.php?tid=4210
nzncxc 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liaojuan18 的回复:]
缺少库
[/Quote]

英雄留步!!哪个库~~快告诉我
liaojuan18 2010-10-27
  • 打赏
  • 举报
回复
缺少库
nzncxc 2010-10-27
  • 打赏
  • 举报
回复
自己顶,红的哪里我觉得是有问题,求高人!
nzncxc 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bluepuzzle 的回复:]
你确保libmysql.lib存在,而且路径在C:\MySQL\lib\opt\下,路径名不能有空格
还有这篇文章你也看看吧
http://student.csdn.net/space.php?uid=32341&do=blog&id=10663
[/Quote]

大哥我跟你跪下了。第二个文章对我非常有用。过了!
bluepuzzle 2010-10-27
  • 打赏
  • 举报
回复
你确保libmysql.lib存在,而且路径在C:\MySQL\lib\opt\下,路径名不能有空格
还有这篇文章你也看看吧
http://student.csdn.net/space.php?uid=32341&do=blog&id=10663
nzncxc 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bluepuzzle 的回复:]
你看看这篇帖子
http://www.qtcn.org/bbs/read.php?tid=4210
[/Quote]

错误依旧。。。

16,248

社区成员

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

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