Mac下QOCI驱动已编译无法加载问题

Posted by Harid十月 - 15 - 2014 Leave comments

昨天晚上成功在Mac下编译了OQCI驱动,见《Mac下编译QOCI驱动》。但是在使用QT Creator来加载验证的时候发现出现如下的提示:

QSqlDatabase: QOCI driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QOCI QOCI8 QODBC QODBC3 QPSQL QPSQL7

其中明确提示可用的驱动有“QOCI”,但是同时却报错“QOCI driver not loaded” 。在未编译出QOCI驱动之前,编译工程出错提示是:

QSqlDatabase: QOCI driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

 说明QOCI驱动是准备好了的,但是因为某些原因,QT Creator在编译工程的时候无法加载它。

drivernotloaded

我想到的是是否缺失环境变量?

于是我设置了DYLD_LIBRARY_PATH环境变量如下:

DYLD_LIBRARY_PATH=/Users/instantclient_11_2:/Users/Harid/Qt/5.3/clang_64/plugins/sqldrivers::/Users/Harid/Qt/5.3/clang_64/lib

 同时,从前一篇博文即可以看出,ORACLE相关的环境变量也都是OK的。我也尝试了在.pro文件中添加了如下三行:

INCLUDEPATH+=/Users/instantclient_11_2/sdk/include
INCLUDEPATH+=/Users/Harid/Qt/qt-everywhere-opensource-src-5.3.1/qtbase/include
LIBS+=-L/Users/instantclient_11_2

但是依旧是提示无法加载QOCI驱动。

最后想到的是:因为我是直接用鼠标点击QT Creator图标来打开应用的,QT Creator也是用我自己的普通用户安装的,环境变量也都是在该用户下面。会不会我用鼠标双击图标来打开应用时没有应用上相关的环境变量?死马当作活马医,我在安装QT Creator的用户下面,直接使用open命令来打开QT Creator应用,然后编译同一个工程,竟然加载QOCI驱动成功了!

 loadsuccess

赶紧将这个命令创建一个alias,哈哈,开心!

1
alias qtcreator='open /Users/Harid/Qt/Qt\ Creator.app'

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


分享按钮