Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2618143
  • 博文数量: 315
  • 博客积分: 3901
  • 博客等级: 少校
  • 技术积分: 3640
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-08 15:32
个人简介

知乎:https://www.zhihu.com/people/monkey.d.luffy Android高级开发交流群2: 752871516

文章分类

全部博文(315)

文章存档

2019年(2)

2018年(1)

2016年(7)

2015年(32)

2014年(39)

2013年(109)

2012年(81)

2011年(44)

分类: Mysql/postgreSQL

2011-07-16 02:50:02

重新装了一次系统,所以重新搭建环境。过程中又出了很多问题:
  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,如下图:
    
   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
阅读(3448) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

HuangLei_LEGO2015-07-07 08:52:55

kuseshamo:楼主你好!我上面所有的步骤都正确。最后还是出现错误。不知楼主有没有解决办法,谢谢!
`mysql_stmt_attr_set@12\'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x61c6): undefined reference to
`mysql_real_escape_string@16\'
C:/Qt/Qt5.3.0/Tools/mingw482_32/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../.
./i686-w64-mingw32/bin/ld.exe: .obj/release/qsql_mysql.o: bad reloc address 0x4
in section `.data\'
collect2.exe: error: ld returned 1 exit status
Makefile.Release:80: recipe for target \'..\\..\\..\\

这个没遇到过,而且已经时隔三年了。  你去google、百度或者bing上去查一下吧。     而且时隔这么多年,个人认为应该有比较新的版本,更方便的版本。  其实用ubuntu系统做开发,才是爽的。  windows下很麻烦。

回复 | 举报

kuseshamo2015-07-06 22:21:14

楼主你好!我上面所有的步骤都正确。最后还是出现错误。不知楼主有没有解决办法,谢谢!
`mysql_stmt_attr_set@12\'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x61c6): undefined reference to
`mysql_real_escape_string@16\'
C:/Qt/Qt5.3.0/Tools/mingw482_32/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../.
./i686-w64-mingw32/bin/ld.exe: .obj/release/qsql_mysql.o: bad reloc address 0x4
in section `.data\'
collect2.exe: error: ld returned 1 exit status
Makefile.Release:80: recipe for target \'..\\..\\..\\