• 6733阅读
  • 3回复

解决windows平台qt4访问mysql5数据库驱动问题 [复制链接]

上一主题 下一主题
离线wenzhezujie
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-15
— 本帖被 XChinux 从 Qt for Linux/X11 移动到本区(2010-02-08) —
昨天把写好得几个数据库应用程序移植到windowsxp上去,很庆幸qt4.x在windows平台良好得表现力。

可是搞了半天,在网络上找了好几个参考资料,结果老是提示找不到libmysq.dll这个东东。错误跟网络

上很多朋友得错误一样。大致如下:

.........................................................................................................................................

g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runt
ime-pseudo-reloc -Wl,-s -Wl,-s -shared -Wl,--out-implib,d:\Qt\4.1.1\plugins\sqld
rivers\libqsqlmysql.a -o "d:\Qt\4.1.1\plugins\sqldrivers\qsqlmysql.dll" tmp\obj\
release_shared\main.o tmp\obj\release_shared\qsql_mysql.o -L"d:\Qt\4.1.1\lib" -
L"d:\Qt\4.1.1\lib" C:\MYSQL\LIB\OPT\LIBMYSQL.a -llibmysql -lQtSql4 -lQtCore4
D:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot f
ind -llibmysql
collect2: ld returned 1 exit status
mingw32-make[1]: *** [d:\Qt\4.1.1\plugins\sqldrivers\qsqlmysql.dll] Error 1
mingw32-make[1]: Leaving directory `D:/Qt/4.1.1/src/plugins/sqldrivers/mysql'
mingw32-make: *** [release] Error 2

............................................................................................................................................

按照assistant上面的做法,以及参考网络上得资料,怎么搞都是这个错误.很恼火,搞了我好几个小时,中午午觉都

没有睡,不过我还是很幸运得,很多朋友为了这个问题搞了几天.

具体过程如下:

1  安装mingw.   (安装路径 c:\mingw)

2  安装qt-4.5.1-opensource-windows-mingw.exe具体可以在trolltech公司的ftp上下载这个版本. (安装路径 c:\qt)

3  安装mysql过程中选择custom 方式,选择开发模式.即代include lib库的方式,其他按默认设置.  (安装路径c:\mysql).

               注:为什么选择这样的安装路径,因为这些文件默认安装得时候路径带有“空格”,在解析路径的时候,会有麻烦。

4  分别为这几个文件的/bin目录设置环境变量。

5  下载mingw-utils包, 下载:http://www.qtcn.org/download/mingw-utils-0.3.tar.gz 下载后把 /bin里面的reimp.exe文件拷贝到

    c:\mingw\bin下面。

6  命令行执行这样的操作:

    cd c:\mysql\lib\opt
    reimp -d libmysql.lib
    dlltool -k -d libmysql.def -l libmysql.a  (完成后在c:\mysql\lib\opt目录下会产生几个相应的文件。不要管它。)

7  到QT对应的mysql源文件目录下去。即:

    cd %QTDIR%\src\plugins\sqldrivers\mysql
    qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\libmysql.a" mysql.pro
    make

    这样就搞定,编译通过,就可以在qt的相应目录中就会产生myql得动态链接库文件。编个程序测试下绝对没有问题

    粗体部分的大小写一定要注意。任意搞错一个字母得大小写就不能通过。
离线sunday1118
只看该作者 1楼 发表于: 2009-08-23
收藏了 谢谢楼主分享
离线zzh

只看该作者 2楼 发表于: 2009-08-25
楼主啊,这样的帖子在网络上已经很多了,你就不要再重复发帖了
离线qinyi
只看该作者 3楼 发表于: 2009-09-18
我用dlltool.exe生成的libmysql.a 大小为0,请问为什么呀
C++  QT
嵌入式BBS论坛
http://bbs.2embed.com
快速回复
限100 字节
 
上一个 下一个