qt中重新编译mysql_WIndows下QT编译MySQL数据库的开始 再次体验纠错版

本文档详细记录了在Windows系统中,使用QT重新编译MySQL数据库驱动的过程,包括安装mingw-utils,配置环境变量,使用reimp和dlltool生成libmysql.a文件,解决编译过程中遇到的问题,如libmysql.lib找不到等,最终成功编译出驱动文件。
摘要由CSDN通过智能技术生成

重新装了一次系统,所以重新搭建环境。过程中又出了很多问题:

1.下载mingw-utils-0.3,百度里面太少了,你去google,很多。(这里我要说明一点就是。很多人在安装MySQL的时候不是完全安装的话就没有opt那个目录,更别说libmysql.lib这个文件了,所以你要完全安装,把原来的卸载掉,或者再装个其它版本,不冲突的。)

2.将其解压,找到bin目录下的reimp.exe,然后拷贝到C:\MinGW\bin目录下,当然你的MinGW装载哪你就相应拷贝到那个bin目录下。

3.由于后面要用到reimp命令,所以把MinGW的bin目录加载到classpath中,如果没有就新建系统环境变量classpath,我的是windows7,如下图:

dd6be376271d548955b877e496e3516f.png

4.进入C:\Program Files\MySQL\MySQL Server 5.0\lib\opt目录,因为我的MySQL是装在这的,这要看你装哪了。进入之后可以看到有libmysql.lib和其它相关文件。

然后执行如下命令:(dos)

1>C:\Program Files\MySQL\MySQL Server 5.0\lib\opt>reimp -d libmysql.lib

2>C:\Program Files\MySQL\MySQL Server 5.0\lib\opt>dlltool -k -d libmysql.def -l libmysql.a

完成之后那个libmysql.a文件就诞生了。这是所需的重要文件。

5.然后我就按照网上的一些说法(这次可以了)。

然后转到Qt的目录下(我的为C:\Qt\4.3.2\src\plugins\sqldrivers\mysql).

运行如下命令:

1>qmake -o Makefile "INCLUDEPATH+=C:\MySQL\lib\include" "LIBS+=C:\MySQL\lib\lib\opt\LIBMYSQL.a" mysql.pro

2>mingw32-make

发现错误了如下:

D:/Qt/4.3.2/src/plugins/sqldrivers/mysql>mingw32-make

mingw32-make -f Makefile.Release

mingw32-make[1]: Entering directory `C:/Qt/4.3.2/src/plugins/sqldrivers/mysql'

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel

oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,c:/Qt/4.3.2/plugins/sqldrivers/

libqsqlmysql4.a -o "../../../../plugins/sqldrivers/qsqlmysql4.dll" tmp/obj/relea

se_shared/main.o tmp/obj/release_shared/qsql_mysql.o tmp/obj/release_shared/moc_

qsql_mysql.o  -L"c:/Qt/4.3.2/lib" -L"c:/Qt/4.3.2/lib" tmp/obj/release_shared/qsq

lmysql_resource_res.o C:/MYSQL/LIB/OPT/LIBMYSQL.a -llibmysql -lQtSql4 -lQtCore4

c:/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]: *** [../../../../plugins/sqldrivers/qsqlmysql4.dll] Error 1

mingw32-make[1]: Leaving directory `C:/Qt/4.3.2/src/plugins/sqldrivers/mysql'

mingw32-make: *** [release] Error 2

在编译过程中可能会出现"llibmysql文件找不到"的提示拷贝你生成的libmysql.lib文件到C:/Qt/4.3.2/lib文件夹下就可以编译通过了

或者修改mysql.pro文件:(如果发现找不到一些文件,可能是空格搞的鬼。你将include和lib拷贝到c盘根目录下,再将新的路径加入)

如果命令不行,那么就这样:在mysql.pro(在C:\Qt\4.3.2\src\plugins\sqldrivers\mysql下面)中加入:

INCLUDEPATH+="C:\include"

LIBS+="C:\lib\opt\libmysql.a"

保存并退出

再D:/Qt/4.3.2/src/plugins/sqldrivers/mysql>mingw32-make

6.然后你就会发现在C :\Qt\4.3.4\qt\plugins\sqldrivers下多了四个文件:当然看你安装qt的版本qsqlmysql4.dll

libqsqlmysql4.a

qsqlmysqld4.dll

libqsqlmysqld4.a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值