Mac下编译QOCI驱动

Posted by Harid十月 - 14 - 2014 Leave comments

本文描述如何在Mac OS X系统上编译使用QT中的QOCI驱动及在编译使用过程中遇到的一些问题。

下载安装ORACLE的instant client 11.2客户端

首先按照上一篇博文《ORA-21561 and Oracle Instant Client 11.2 on Mac OS X》的内容安装instant client 11.2客户端,并在其基础上再下载包:instantclient-sdk-macos.x32-11.2.0.3.0.zip,解压后将sdk目录合并至之前安装的instant client目录下。

下载QT的源码包

下载与所安装QT版本匹配的QT源码包:qt-everywhere-opensource-src-5.3.1.tar.xz。

创建lib库文件的软链接

基于上述的ORACLE客户端,在实际编译QOCI驱动中会出现一些编译错误,如下图所示:

qt_compile_error

我们需要创建两个软链接来规避该问题,分别是:

1
2
sudo ln -s libclntsh.dylib.11.1 libclntsh.dylib
sudo ln -s libocci.dylib.11.1 libocci.dylib

 开始编译(参照http://qt-project.org/doc/qt-5/sql-driver.html)

1、进入QT源码目录:

1
cd ./Qt/qt-everywhere-opensource-src-5.3.1/qtbase/src/plugins/sqldrivers/oci

2、执行qmake:

1
qmake "INCLUDEPATH+=/Users/instantclient_11_2/sdk/include /Users/Harid/Qt/qt-everywhere-opensource-src-5.3.1/qtbase/include" "LIBS+=-L/Users/instantclient_11_2 -Wl,-rpath,/Users/instantclient_11_2 -lclntsh -lnnz11” oci.pro

3、执行make:

1
make

qoci_compile_success

等待编译完成,会在Qt/qt-everywhere-opensource-src-5.3.1/qtbase/plugins/sqldrivers目录下生成两个驱动文件

libqsqloci.dylib

libqsqloci_debug.dylib

使用QOCI驱动

将该两个文件拷贝至QT安装目录下的Qt/5.3/clang_64/plugins/sqldrivers目录下面,即完成了编译并可以使用了。使用该驱动的时候需要在.pro文件中添加“QT += sql”。

   声明:本文采用 BY-NC-SA 协议进行授权 | 星期九
   原创文章转载请注明:转自《Mac下编译QOCI驱动


分享按钮