Qt4.8.6编译mysql5.5




https://www.cnblogs.com/findumars/p/6017617.html

Qt4.8.6编译mysql5.5

一、必须知道的一些常识

1、Qt5自带MySQL数据库驱动的,而Qt4如果要进行mysql数据库操作,需要自己编译mysql数据库驱动

2、Qt安装完之后是自带两个关于mysql文件夹的,比如说我的安装目录

D:\Qt\4.8.6\src\plugins\sqldrivers\mysql,里面包含三个文件mysql.pro、main.cpp、README,

编译mysql驱动其实就是编译里面的mysql.pro项目

D:\Qt\4.8.6\plugins\sqldrivers这个目录存放已经编译好的.a和.dll文件

3、注意编译器一定要和MYSQL的平台版本一致,32位的mysql用32位的编译器编译,

64位的mysql用64位的编译器编译。

因为我的Qt是32位的,所以我在此提供32位的mysql下载地址:

http://download.csdn.net/detail/bladeandmaster88/9668220

mysql安装方法http://jingyan.baidu.com/article/647f011591f1eb7f2148a81a.html

如果你是32位的Qt却下载64位的mysql来编译会出现各种链接错误,比如:

undefine reference to mysql_error

undefine reference to mysql_errno

………….

二、编译mysql

到mysql的安装目录C:\ProgramFiles (x86)\MySQL\MySQL Server 5.5,把里面的include文件夹和lib文件夹,把他们复制后,

在d盘建一个”mysql5.5”的文件夹,把include和lib放进去如下图,因为mysql的安装目录路径有空格

include和lib里面的头文件和库在编译的时候找不到,所以需要重新建一个路径存放include和lib,

让编译器能够识别其路径,找到里面的头文件和库。

方法一:直接用Qt编译

用Qt打开D:\Qt\4.8.6\src\plugins\sqldrivers\mysql中的mysql.pro项目

 在mysql.pro中加入3行代码(红色部分)

TARGET =qsqlmysql

SOURCES =main.cpp

INCLUDEPATH += d:/mysql5.5/include

LIBS += d:/mysql5.5/lib/libmysql.lib

CONFIG += bulid_all

include(../../../sql/drivers/mysql/qsql_mysql.pri)

include(../qsqldriverbase.pri)

注意:

1、红色代码一定要在绿色两行代码之前,否则出现error: cannot find –llibmysql,

2、INCLUDEPATH +=d:/mysql5.5/include

LIBS += d:/mysql5.5/lib/libmysql.lib

这两句是为了找到include头文件和 lib库

3、CONFIG += bulid_all是为了一次性就能同时生产release版和debug版的库

直接点击运行按钮,编译结果如图:

把debug和release里面生成的libqsqlmysql4.a,libqsqlmysqld4.a, qsqlmysql4.dll,qsqlmysqld4.dll 四个文件

拷贝到D:\Qt\4.8.6\plugins\sqldrivers,还必须将D:\mysql5.5\lib下的libmysql.dll拷贝到D:\Qt\4.8.6\bin

测试:

#include<QCoreApplication>

#include<QSqlDatabase>

#include<QDebug>

#include<QStringList>

intmain(intargc,char*argv[])

{

   QCoreApplicationa(argc,argv);

   qDebug()<<"Availabledrivers:";

   QStringListdrivers=QSqlDatabase::drivers();

   foreach(QStringdriver,drivers)

       qDebug()<<"\t"<<driver;

   returna.exec();

}

输出结果:

Availabledrivers:

"QSQLITE"

"QMYSQL3"

"QMYSQL"

"QODBC3"

"QODBC"

输出了"QMYSQL3" "QMYSQL"说明mysql驱动已经编译好

方法二:使用Qt  Command Prompt 编译

在mysql.pro中加入2行代码(红色部分)

TARGET =qsqlmysql

SOURCES =main.cpp

INCLUDEPATH += d:/mysql5.5/include

LIBS += d:/mysql5.5/lib/libmysql.lib

include(../../../sql/drivers/mysql/qsql_mysql.pri)

include(../qsqldriverbase.pri)

打开Qt CommandPrompt 窗口

输入命令:cd d:\Qt\4.8.6\src\plugins\sqldrivers\mysql

输入命令 qmake

输入命令make all

猜你喜欢

转载自blog.csdn.net/hewusheng10/article/details/79608845