讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so

news2024/10/5 20:22:07

1.需求    

最近linux下的Qt项目中要连接oracle数据库,用户需要我们访问他们的oracle数据库,查询数据

2.遇到的问题

qt连接oracle数据库需要oracle的驱动库libqsqloci.so插件,需要编译下,之前没有编译过,看了网上的很多都行不通,只好自己问同事查文档完成

3.解决方案

1.首先需要oracle数据库的sdk包和baisc包

sdk包提供编译所需的头文件,压缩包或者安装包里提供编译所需的依赖库文件

官网下载地址在这里:Instant Client for Linux x86-64 (64-bit) | Oracle 中国

basic压缩包下面这个,不用安装的,解压就行

sdk包下面这个,拉下去就有了

下载完成后,解压,我新建了两个文件夹后把解压的文件放进去,因为名字太长了

然后进入basic包里面,为这两个库生成软连接,qt编译需要用到

生成软连接命令:

ln -s libclntsh.so.11.1 libclntsh.so

ln -s libocci.so.11.1 libocci.so

然后我们进入qt的数据库驱动目录下,根据自己的安装位置找,终端切换到sqldrivers目录

输入:qmake执行,让其生成qtsqldrivers-config.pri

然后修改:qsqldriverbase.pri文件,改成如下,注释掉原来的,保存退出

#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include($$PWD/qtsqldrivers-config.pri)

然后进入oci目录,打开oci.pro文件,修改如下内容

注释掉:#QMAKE_USE += oci,在加入如下内容,如下所示

QMAKE_LFLAGS += /home/yicaobao/sortware/oracle/basic-linux-x64/libocci.so

LIBS += -L/home/yicaobao/sortware/oracle/basic-linux-x64 -locci -lclntsh

INCLUDEPATH += /home/yicaobao/sortware/oracle/sdk-linux-x64/include
DEPENDPATH += /home/yicaobao/sortware/oracle/sdk-linux-x64/include

根据自己的实际路径来改,注意:路径不能有中文

改完后在终端进入oci目录,执行如下命令,make完成后就看到在相应的目录下生成了libqsqloci.so,libqsqloci.so.debug

然后我们把第一个库文件libqsqloci.so拷贝到,程序所需的驱动目录下

除了这个编译的驱动,还需要几个库依赖,从basic目录下,把这几个库拷贝到你的库目录中,这个目录可以配置,在程序的pro目录下,配置即可,否则程序运行时会找不到,连接时报错

最后,再把basic目录下的libnnz11.so目录拷贝到程序所在目录中,不然连接oracle数据库会提示找不到这个依赖

最后,就可以连接oracle数据库了

如下还是打开数据库失败,在终端运行程序前输入,可查看插件加载运行的详细信息
export QT_DEBUG_PLUGINS=1

如果加载库失败,会提示相关的原因,如下提示了:无法加载库/home/yicaobao/svn/projects/VWEL-SCB/branches/test/SC3CForJL/bin/debug/sqldrivers/libqsqloci.so:(libnnz11.so: 无法打开共享对象文件: 没有那个文件或目录)

然后,完成,记录下来给后人分享吧,有什么疑问,可以评论区讨论一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1500264.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

#微信小程序(布局、渲染层基础知识)

1.IDE&#xff1a;微信开发者工具 2.实验&#xff1a; 3.记录: &#xff08;1&#xff09;view&#xff08;类似于div&#xff09; &#xff08;2&#xff09;块级元素不占满一行且水平均分布局flex,justify(space-around) &#xff08;3&#xff09;滚动<scroll view sc…

一文搞懂电容两端电压为啥不能突变?

大家好&#xff0c;我是砖一。 我们工作学习过程中&#xff0c;经常会遇到的电容&#xff0c;对于电容的作用&#xff0c;可能大家一般去网上搜有很多&#xff0c;比如储能&#xff0c;滤波&#xff0c;旁路&#xff0c;去耦等等。 但是我要告诉大家的是&#xff0c;电容最重…

基于yolov5的SAR舰船检测系统,可进行图像目标检测,也可进行视屏和摄像检测(pytorch框架)【python源码+UI界面+功能源码详解】

功能演示&#xff1a; 基于yolov5的SAR舰船检测系统&#xff0c;系统既能够实现图像检测&#xff0c;也可以进行视屏和摄像实时检测_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于yolov5的SAR舰船检测系统是在pytorch框架下实现的&#xff0c;这是一个完整的项目&…

ai直播数字人:AI大模型应用开发的神奇世界

当AI技术的发展走向一个新的高峰&#xff0c;AI直播数字人逐渐成为人们关注的焦点。这种全新的数字人形态&#xff0c;通过大模型应用开发&#xff0c;带来了一个神奇世界。 在这个神奇世界里&#xff0c;AI直播数字人可以展现出与真实人类相媲美的外貌和声音。通过先进的图像…

RoaringBitmap 源码

当调用add方法时&#xff0c;先把x分成高16位和低16位。 ">>> "是 Java 中的无符号右移操作符&#xff0c;表示将 x 的二进制表示向右移动 16 位 当x为 65535 &#xff0c;二进制为1111111111111111&#xff0c;16个1&#xff0c;即丢掉右16位&#xff0c;左…

FX110网:CTRL FX 是典型的诈骗平台!汇友发出肺腑之言

“CTRL FX 是一个典型的投资骗局&#xff0c;以‘出金缴税’等为幌子反复割韭菜&#xff0c;入金了这么多&#xff0c;但没有一次出金获得批准。揭露他们的骗局&#xff0c;保护受害者对我是一种宽慰。” 这是近日一汇友在对CTRL FX平台彻底失望后发出的声音。珍惜别的投资者用…

如何使用apk2url从APK中快速提取IP地址和URL节点

关于apk2url apk2url是一款功能强大的公开资源情报OSINT工具&#xff0c;该工具可以通过对APK文件执行反汇编和反编译&#xff0c;以从中快速提取出IP地址和URL节点&#xff0c;然后将结果过滤并存储到一个.txt输出文件中。 该工具本质上是一个Shell脚本&#xff0c;专为红队…

Claude3综合能力媲美GPT4.0!逻辑推理能力独一档的存在!

当人们还在期待GPT5.0的时候&#xff0c;openai竞争对手Anthropic公司又献出了Claude3&#xff0c;它在综合能力实测当中可以媲美GPT4.0&#xff01;尤其它的逻辑推理能力&#xff0c;有过之而无不及&#xff0c;几乎独一档的存在。一问世就吸引了大量用户使用。 接下来分享一…

游泳——所须知的那些事

游泳是一项大家喜爱的健身活动&#xff0c;带夏季的时候游泳场所成了大家常去的休闲活动场地&#xff0c;但也会存在一定的安全风险&#xff0c;为了保证游泳的安全&#xff0c;需要知道一些事情&#xff1a; 1.清楚的知道游泳池的深度 大部分游泳场馆的泳池是有深浅区的&…

如何一键发布离线地图(二次开发)

离线地图发布工具支持 离线浏览 离线地图二次开发 离线工具应用(绘制&#xff1a;点、线、面&#xff0c;导入导出矢量数据)以及轨迹纪录等等应用&#xff0c;具体可参看&#xff1a;演示实例 Bigemap Server离线地图服务器下载地址&#xff1a;http://download.bigemap.com…

亚洲股市下一步的关键:中国看财报、日本看汇率、韩国看治理、印度看基建

汇丰认为财报将是驱动中国股市走势的关键因素。目前市场预计2024年中国企业每股收益将增长16%。 日本央行转向、A股业绩复苏、印度基建、韩国市场改革......最近这段时间&#xff0c;亚洲各大市场涌现出了不同的交易主题。 汇丰银行指出&#xff0c;中国受到本土企业盈利能力…

VR数字化线上展馆降低企业投入成本和周期

VR云展会是一种全新的展览形式&#xff0c;它利用虚拟现实技术&#xff0c;将实体展览搬到线上&#xff0c;让观众可以在家中就能参观各种展览。这种新型的展览方式有许多亮点&#xff0c;下面就来详细介绍一下。 首先&#xff0c;VR云展会打破了地域限制。传统的实体展览通常只…

JavaWeb-MyBatis(上)

学完项目管理工具Maven后&#xff0c;继续学习MyBatis。我们都知道&#xff0c;JDBC是一个与数据库连接相关的API&#xff0c;最开始学习数据库连接都是从JDBC开始学起&#xff0c;但是其也有缺点&#xff0c;比如硬编码和操作繁琐等等。而今天学习的MyBatis就是专门为简化JDBC…

Python 通过掩膜剪切栅格多边形

剪切、提取到掩码和栅格子集是常见的 GIS 操作。使用 Python 的 gdal 软件包可以非常容易地实现这些过程的自动化。本教程将演示如何使用 gdal Python API 中的 Warp() 函数将栅格剪切到指定范围并将栅格剪切到多边形图层。这些操作通常也被称为掩码提取或提取到掩码。 安装 GD…

将 VHDX 或 VHD 添加到启动菜单(为电脑创建第二个系统)

此文章记录如何创建一个虚拟磁盘,然后将Windows映像安装到硬盘中. 分为两种方法,一个是纯命令符一个是图形操作 [TOC](将 VHDX 或 VHD 添加到启动菜单(为电脑创建第二个系统)) 准备工作 磁盘空间大于25G系统映像文件 使用Diskpart 1. 从diskpart创建VHDX 首先,打开命令提示…

如何在线制作二维码并支持样式修改?二维码美化模板设计技巧

在制作二维码的使用&#xff0c;除了对功能有需求之外&#xff0c;二维码的样式也是很多人会注重的一个方面&#xff0c;那么如何快速制作二维码并按照自己需要的要求来优化展示效果呢&#xff1f; 现在二维码制作可以通过网上的二维码生成器工具来完成&#xff0c;比如图片、…

Linux 网络监控工具

企业依靠其网络基础设施向客户和最终用户提供数字服务&#xff0c;这些环境包括 Windows 和 Linux 网络设备。与 Windows 网络相比&#xff0c;带有 GUI 的 Windows 网络相对易于管理&#xff0c;而 Linux 网络提供了更大的灵活性和高级级别的自定义。 由于操作系统有助于部署…

GitHub登不上:修改hosts文件来解决(GitHub520,window)

参考链接&#xff1a;GitHub520: 本项目无需安装任何程序&#xff0c;通过修改本地 hosts 文件&#xff0c;试图解决&#xff1a; GitHub 访问速度慢的问题 GitHub 项目中的图片显示不出的问题 花 5 分钟时间&#xff0c;让你"爱"上 GitHub。 (gitee.com) GitHub网站…

【金三银四的季节看下Java ORM的走向和性能对比】总结

写在最后 经过将近一周时间的框架收集、学习、实验、编码、测试市面上常见的ORM框架&#xff0c;过程中拜读了很多作者的博文、样例&#xff0c;学习很多收获很多。 重新梳理下整理的框架&#xff1a;mybatis-plus、lazy、sqltoy、mybatis-flex、easy-query、mybatis-mp、jpa、…

【Docker】若依ruoyi项目部署

一 搭建局域网 1 # 搭建net-ry局域网&#xff0c;用于部署若依项目docker network create net-ry --subnet172.68.0.0/16 --gateway172.68.0.1 # 注意1&#xff1a;关闭宿主机的防火墙&#xff0c;否者容器内部的MySQL、redis等服务&#xff0c;外部访问不了&#xff1b;开放…