• 4839阅读
  • 3回复

求教:QT4.7编译mysql驱动出错?(已解决) [复制链接]

上一主题 下一主题
离线kummar
 
只看楼主 倒序阅读 楼主  发表于: 2011-06-27
我编译mysql驱动的步骤是:
1安装mysql5,把其安装目录下的include及lib文件夹考到G:/mysql目录下
2安装Qt Creator (qt-sdk-win-opensource-2010.05.exe)  qt版本4.7
3设置QT的环境变量,目的是在命令行下能执行qmke及 mingw32-make两个命令。环境变量主要设置了以下两个
添加了新环境变量QTDIR=G:/Qt/qt           //我的QT安装目录
给原有环境变量PATH添加了新路径:G:\Qt\mingw\bin     //目的是在命令行下能执行mingw32-make
4 根据QT帮助文档编译mysql驱动,文档是这样描述的,见附:
我的步骤是按照文档来的,在命令行下执行以下命令
cd G:\Qt\qt\src\plugins\sqldrivers\mysql
qmake "INCLUDEPATH+=G:\mysql\include" "LIBS+=G:\mysql\lib\opt\libmysql.lib" mysql.pro
mingw32-make
编译进行几秒后,出现一大片类似以下的错误:请问一下可能是什么错误,谢谢!
G:\software\Qt\qt\src\plugins\sqldrivers\mysql/../../../../include/QtCore/../../
src/corelib/tools/qvector.h:115: undefined reference to `_imp___ZN11QVectorData1
1shared_nullE'



附:
How to Build the QMYSQL Plugin on Windows

You need to get the MySQL installation files. Run SETUP.EXE and choose "Custom Install". Install the "Libs & Include Files" Module. Build the plugin as follows (here it is assumed that MySQL is installed in C:\MySQL):<PRE cpp? brush:> cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MYSQL\MySQL Server <version>\lib\opt\libmysql.lib" mysql.pronmake
If you are not using a Microsoft compiler, replace nmake with make in the line above.

Note: This database plugin is not supported for Windows CE.Note: Including "-o Makefile" as an argument to qmake to tell it where to build the makefile can cause the plugin to be built in release mode only. If you are expecting a debug version to be built as well, don't use the "-o Makefile" option.


按这里说的步骤就行http://www.qtcn.org/bbs/read-htm-tid-44229.html
出现我这里所说的错误主要是可能我装了VS的原故,我把VS卸载了就能编译出来了


离线XChinux

只看该作者 1楼 发表于: 2011-06-27
mingw编译器需要的是.a格式的mysql库,而不是.lib格式的。需要你用工具将libmysql.lib转换成libmysql.a
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线kummar
只看该作者 2楼 发表于: 2011-06-27
回 1楼(XChinux) 的帖子
好的,我试试看,谢谢总版主
离线kummar
只看该作者 3楼 发表于: 2011-06-27
回 1楼(XChinux) 的帖子
还是不行啊,我按下面步骤生成libmysql.a文件,将上面命令中的libmysql.lib替换成libmysql.a,再按上面的的编译方法重来了一遍,错误还是一样的(QT我也是重新安装过的)。请求帮助。

1下载动态库格式转换工具,网址为: http://www.qtcn.org/download/mingw-utils-0.3.tar.gz并解压到某个PATH包含的目录下
2.进入mysql文件夹:
    cd c:\mysql\lib\opt
   生成def文件  c:\mysql\lib\opt>reimp -d libmysql.lib
3进入qt的mysql文件夹
   指定def : C:\mysql\lib\opt>dlltool -k -d libmysql.def -l libmysql.a
快速回复
限100 字节
 
上一个 下一个