我正在尝试在 Qt 应用程序中连接到 Oracle 数据库。我刚刚创建了一个如下所示的示例代码来首先测试数据库连接。
#include <QCoreApplication>
#include <QtSql/QSqlDatabase>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setHostName("192.168.1.11");
db.setDatabaseName("dm1db");
db.setUserName("user");
db.setPassword("user123");
bool ok = db.open();
}
它在说
QSqlDatabase: QOCI driver not loaded.
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
这发生在两天前,我了解到我的 Qt Creator 安装中未启用 QOCI。因此,我尝试按照 Qt 的以下指导启用它。
https://doc.qt.io/qt-5/sql-driver.html
我有一个 Oracle 12.1.0.2 客户端。这些文件是 (/home/santhosh/instantclient_12_1) :

包含文件(/home/santhosh/instantclient_12_1/sdk/include):

Oracle 12.1.0.2 客户端仅包含 libclntsh.so.12.1 文件。因此,我在同一目录中创建了一个指向该文件的符号链接作为 libclntsh.so,以支持根据 Qt 文档进行的命名转换。
我按照 Qt 文档尝试了这个命令来启用 OCI 驱动程序。
./configure -sql-oci OCI_INCDIR=/home/santhosh/instantclient_12_1/sdk/include OCI_LIBDIR=/home/santhosh/instantclient_12_1
但是当它完成时,它会给我一个错误,例如:
ERROR: Feature 'sql-oci' was enabled, but the pre-condition 'libs.oci' failed.
我在 config.log 文件中发现了这个错误。
loaded result for library config.qtbase_sqldrivers.libraries.oci
Trying source 0 (type inline) of library oci ...
=> source failed condition 'config.win32'.
Trying source 1 (type inline) of library oci ...
oci.h not found in [] and global paths.
=> source produced no result.
test config.qtbase_sqldrivers.libraries.oci FAILED
在过去的两天里,我尝试了一些其他不同的方法,遵循了一些关于在 Qt 中启用 oci 的其他文档。但没有什么对我有用。Qt 文档不清楚如何在上述最新客户端中对 oracle .so 文件进行命名转换。我在用:

谁能告诉我一个确切的分步过程,我应该遵循配置我的 Qt Creator 以使用我的 Oracle 数据库?