QOCI编译

Qt开发环境的搭建请参考网址:http://blog.csdn.net/fan_hai_ping/article/details/8273669

MySQL库编译

在使用MySQL数据库的时候,报如下错误:

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITEQODBC3 QODBC QPSQL7 QPSQL

缺省情况下,对于QSqlDatabase可用的库有QSQLITEQODBC3 QODBC QPSQL7 QPSQL,如果需要使用MySQL库或者Oracle库就要自己进行手动编译,方法如下:

首先下载Mysql的开发库,下载网址如下:

http://cdn.mysql.com/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip

然后解压缩文件到Qt安装目录下,修改目录名为mysql,现在开始编译MySQL驱动:

进入到D:\Qt\4.8.4\src\plugins\sqldrivers\mysql目录(QT SDK安装目录)下,找到mysql.pro文件,在第二行添加:

INCLUDEPATH +=D:/Qt/mysql/include

LIBS +=D:/Qt/mysql/lib/libmysql.lib

在该目录下执行qmake生成makefile文件:

qmake -oMakefile mysql.pro  (或) qmake

执行make进行编译(VS使用nmake命令)Debug和Release版本:

make (or) nmake

nmake /fMakefile.Debug

nmake /f Makefile.Release

此时,会在当前目录下debug和release目录中生成dll和lib文件,把这些动态库文件(qsqlmysqld4.dll/lib和qsqlmysql4.dll/lib)拷贝到D:\Qt\4.8.4\plugins\sqldrivers目录下。

同时,也要把mysql/lib/libmysql.dll这个文件复制到qt的bin目录(D:\Qt\4.8.4\bin)下。

Oracle库编译

 

搭建开发环境需下载两个文件:

下载网址:http://www.oracle.com/technetwork/topics/winsoft-085727.html

instantclient-basic-nt-11.2.0.3.0.zip。这个包包含运行OCCI程序的动态链接库。

instantclient-sdk-nt-11.2.0.3.0.zip。这个包包含开发库的头文件、静态链接库以及occi示例程序。

注:在Oracle官网上下载文件时需要注册一个账号(free)。

解压缩instantclient-sdk-nt-11.2.0.3.0.zip,修改instantclient-sdk-nt-11.2.0.3.0为oracle,然后把oracle目录拷贝到QT安装目录D:\Qt下。

进入到D:\Qt\4.8.4\src\plugins\sqldrivers\oci目录下,修改oci.pro,添加下面两行:

INCLUDEPATH +=D:/Qt/oracle/instantclient_11_2/sdk/include

LIBS +=D:/Qt/oracle/instantclient_11_2/sdk/lib/msvc/oci.lib

执行qmake生成makefile项目,打开Makefile.Debug和Makefile.Release文件修改第18行,删除掉红色字体标注的oci.lib字符串:

LIBS          = D:/Qt/oracle/instantclient_11_2/sdk/lib/msvc/oci.lib oci.lib

使用nmake进行编译生成Debug和Release动态库:

nmakerelease  (or) nmake debug

此时,会在当前目录下debug和release文件夹中生成的动态库(qsqloci4.dll/.lib和qsqlocid4.dll/.lib),把它们拷贝到D:\Qt\4.8.4\plugins\sqldrivers目录下。

同时,把instantclient-basic-nt-11.2.0.3.0.zip压缩文件中的oci.dll提取到D:\Qt\4.8.4\bin目录中,这样QSqlDatabase可以正确的加载plugins\sqldrivers目录中的Oracle动态库。

你可能感兴趣的:(技术收藏,Qt)