Qt QOCI driver available but not loaded(可用但未加载)

参考Linux Qt 6安装Oracle QOCI SQL Driver插件(适用WSL),根据SQL Database Drivers成功将libqsqloci.soqsqloci.debug等文件安装到/opt/Qt6.8.2/6.8.2/gcc_64/plugins/sqldrivers后,运行Qt程序并尝试连接数据库时仍然报错

QSqlError("", "Driver not loaded", "Driver not loaded")

参考Cannot load QOCI SQL driver even successfully built。经确认,LD_LIBRARY_PATHPATH均添加了Oracle客户端路径(~/software/Oracle,即libclntsh.so所在的目录),并添加了ORACLE_HOME环境变量(注意:如果Oracle客户端为instant client,则不应设置该环境变量)。经QSqlDatabase: QOCI driver not loaded提醒,在Qt Creator中左边栏的"项目",在左分栏中的"构建与运行"中选择相应的Kit(例如Desktop Qt 6.8.2)的"运行"一栏,在右分栏中打开"运行设置",在"环境"一栏中展开"详情",点击"添加(A)"添加环境变量,在右侧的文本输入框中输入QT_DEBUG_PLUGINS=1,然后重新运行Qt程序并尝试连接数据库,显示详细报错:

libclntsh.so.21.1 cannot open shared object file: No such file or directory

在shell中通过ldd libqsqloci.so命令检查动态对象的链接情况,显示

libclntsh.so.21.1 => /home//software/Oracle/libclntsh.so.21.1 (0x000075fe63a00000)

同时其他so文件同样正常链接。参考"libclntsh.so: cannot open shared object file in ubuntu to run python program in Spark Clusterlibclntsh.so.11.1: cannot open shared object file.,在/etc/ld.so.conf.d/目录下新建文件oracle-client.conf,并输入/home/<username>/software/Oracle作为文件内容,然后执行sudo ldconfig。再次运行Qt程序并连接数据库,成功。

相关推荐
dtq042418 分钟前
C语言-结构体详解
c语言·开发语言·学习
梅雅达编程笔记30 分钟前
编程启蒙|Scratch 转 Python 系列第9天:字典/哈希表积木双向对照(AI大模型参数配置表实战)
开发语言·人工智能·python·numpy·pandas
持力行31 分钟前
C++与Java变量声明、定义及内存分配的核心区别
java·开发语言·c++
jinyishu_2 小时前
C++ 继承全解:从基础到高级特性
开发语言·c++
蜡台3 小时前
通过Gradle脚本声明更改Java变量
android·java·开发语言·python·kotlin·gradle·groovy
小喻同学i4 小时前
std::thread函数参数传递
开发语言·c++
Ulyanov5 小时前
Python实现6-DOF刚体仿真器(下)——环境扰动与控制闭环
开发语言·python·算法·系统仿真·雷达电子对抗·导引头
分布式存储与RustFS5 小时前
RustFS Beta.10 性能解读:PUT 全面反超 MinIO,Rust 重写对象存储成了?
开发语言·后端·rust
小小的木头人5 小时前
Python 批量解析 Excel 经纬度,调用高德地图 API 获取中文地址
开发语言·python·excel
nzz_1712146 小时前
PHP程序员转型AI岗位指南:核心技能、北京就业市场与转型路径分析
开发语言·人工智能·php