当前位置: 首页 > news >正文

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

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.soLIBS += -L/home/yicaobao/sortware/oracle/basic-linux-x64 -locci -lclntshINCLUDEPATH += /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: 无法打开共享对象文件: 没有那个文件或目录)

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

相关文章:

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

1.需求 最近linux下的Qt项目中要连接oracle数据库,用户需要我们访问他们的oracle数据库,查询数据 2.遇到的问题 qt连接oracle数据库需要oracle的驱动库libqsqloci.so插件,需要编译下,之前没有编译过,看了网上的…...

SpringCloud Ribbon 负载均衡服务调用

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第三篇,即介绍 Ribbon 负载均衡服务调用 二、概述 2.1 Ribbon 是什么 Spring Cloud Ribbon…...

物联网在智慧城市建设中的关键作用:连接、感知、智能响应

一、引言 随着信息技术的飞速发展,物联网(IoT)技术已经渗透到我们生活的方方面面,特别是在智慧城市建设中发挥着至关重要的作用。智慧城市是指通过运用先进的信息和通信技术,实现城市基础设施、公共服务、交通管理、环…...

安卓7原生相机切到视频崩溃

目录 1、查看日志 2、分析日志、提取重点 3、寻找解决方法 author daisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 daisy.skye_嵌入式,Linux,Qt-CSDN博客daisy.skye擅长嵌入式,Linux,Qt,等方面的知识https://blog.csdn.net/qq_40715266?typeblog 1、查看日志 由于安…...

构建信息蓝图:概念模型与E-R图的技术解析

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua,在这里我会分享我的知识和经验。&#x…...

docker拉取镜像失败的解决方案大全

更换国内源 创建或修改 /etc/docker/daemon.json 文件,修改: {"registry-mirrors" : ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https:…...

Axure Cloud如何给每个原型配置私有域名

需求 在原型发布之后,自动给原型生成一个独立访问的域名,类似http://u591bi.axshare.bushrose.cn,应该如何配置呢? 准备事项 已备案域名 如何备案?阿里云备案流程 已安装部署Axure Cloud 如何安装部署,请…...

语音模块学习——LSYT201B模组(实际操作篇)

目录 一、定制词条 二、直接用串口通信 三、使用单片机通信 理论篇在这,依旧是深圳雷龙发展的语音模块。 http://t.csdnimg.cn/2SzJL 一、定制词条 因为我想后面加到我的毕设上加个语音模块,所以定制的词条都是和芯测相关的。 动作词条播报串口输…...

Android应用界面

概述:由于学校原因,估计会考,曹某人就浅学一下。 目录 View概念 创建和使用布局文件 相对布局 线性布局 水平线性布局 垂直线性布局 表格布局 帧布局 扁平化布局 Android控件详解 AdapterView及其子类 View概念 安卓中的View是所…...

生活的色彩--爱摸鱼的美工(17)

题记 生活不如意事十之八九, 恶人成佛只需放下屠刀,善人想要成佛却要经理九九八十一难。而且历经磨难成佛的几率也很小,因为名额有限。 天地不仁以万物为刍狗! 小美工记录生活,记录绘画演变过程的一天。 厨房 食…...

【YOLO v5 v7 v8 v9小目标改进】AFPN 渐进式特征金字塔网络:解决多尺度特征融合中,信息在传递过程丢失

AFPN 渐进式特征金字塔网络:解决多尺度特征融合中,信息在传递过程丢失 提出背景AFPN 多尺度特征金字塔 非邻近层次的直接特征融合 自适应空间融合操作 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改YOLO v9 魔改 提出背景 论文:https:…...

问题解决 | vscode无法连接服务器而ssh和sftp可以

解决步骤 进入家目录删除.vscode-server rm -rf .vscode-server 然后再次用vscode连接服务器时,会重新安装,这时可能报出一些缺少依赖的错 需要联系管理员安装相关依赖,比如 sudo apt-get install libstdc6 至此问题解决...

Git 远程操作

1.分布式版本控制系统 我们目前所说的所有内容(工作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者计算机上。而我们的 Git 其实是分布式版本控制系统!什么意思呢 可以简单理解为&am…...

Windows C++ 实现远程虚拟打印机(远程共享打印机)

编译错误已经修改完后的工程修改后的下载地址 https://download.csdn.net/download/2403_83063732/88928550 1、下载clawpdf(0.8.7版本) https://github.com/clawsoftware/clawPDF 2、打开clawpdf工程开始编译C#工程,出现如下错误&#xf…...

【jvm】java对象占用内存问题深入解析

一个Java对象占用多大内存-CSDN博客 关于Object o new Object()追魂九连问(个人学习笔记) - 知乎JVM(Java虚拟机)-史上最全、最详细JVM笔记-CSDN博客...

金现代产品方案部部长王宁,将出席“ISIG-低代码/零代码技术与应用发展峰会”

3月16日,第四届「ISIG中国产业智能大会」将在上海中庚聚龙酒店拉开序幕。本届大会由苏州市金融科技协会指导,企智未来科技(LowCode低码时代、RPA中国、AIGC开放社区)主办。大会旨在聚合每一位产业成员的力量,深入探索低…...

数据结构——lesson7二叉树 堆的介绍与实现

前言💞💞 啦啦啦~这里是土土数据结构学习笔记🥳🥳 💥个人主页:大耳朵土土垚的博客 💥 所属专栏:数据结构学习笔记 💥对于数据结构顺序表链表有疑问的都可以在上面数据结…...

阿里云DSW做AI绘画时的显卡选择A10?V100?

V100是Volta架构,A10是Ampere架构,架构上讲A10先进点,其实只是制程区别,用起来没区别。 V100是HBM的内存读取,带宽大,但是DDR5的。 二块卡都是全精度为主的算力卡,半精度优势不明显。 需要用…...

MySQL安装使用(mac)

目录 一、下载MySQL 二、环境变量 三、启动 MySql 四、初始化密码设置 一、下载MySQL 打开 MySql 官方下载页面 我是macOS12,所以选择了8.0.30 下载完成之后,打开安装,一直下一步安装完成,在最后安装完成时,会弹出…...

Qt控制台项目也能使用opencv的imshow来显示摄像头视频

创建一个Qt控制台项目,目的是实现在控制台打开摄像头视频。由于windows平台是支持GUI(图形用户界面)功能,所以在windows环境下是可以打开的,但是linux环境下,由于不支持GUI功能,而是支持wayland&#xff0c…...

基于STM32LXXX的无线收发芯片(Ci24R1)应用程序设计

一、简介: Ci24R1 是南京中科微推出的一款工作在 2.4GHz ISM 频段的 GFSK/FSK 无线收发芯片。它在设计上高度兼容 nRF24L01+ 的寄存器映射,常被视为低成本替代方案,同时增加了与 BLE4.2 的物理层兼容性 。 二、主要技术特性: ◼ 工作在2.4GHz ISM频段 ◼ 调制方式:GFSK…...

AVIF 与 PNG:下一代图像格式如何改变网页视觉与性能

随着互联网对高质量图像和快速加载速度的要求不断提高,图像格式也在不断进化。从早期的 JPEG、PNG,到如今逐渐普及的 WebP 和 AVIF,图像技术正在经历一场深刻的变革。 其中,AVIF 是近年来最受关注的新一代图像格式之一&#xff0…...

Claude Opus 4.7 API 接入指南:最强模型实测与中转配置教程(2026)

上周 Anthropic 放出了 Claude Opus 4.7 的 API 权限,我第一时间冲进去测了。复杂推理和长上下文代码生成这两块,确实把我之前用的 Claude 4.6 按在地上摩擦。Claude Opus 4.7 是 Anthropic 2026 年发布的旗舰推理模型,接入方式兼容 OpenAI S…...

04华夏之光永存:黄大年茶思屋榜文解法「第10期第4题」 AI运筹优化核心卡点:MIP求解器自学习双路径工程解法

华夏之光永存:黄大年茶思屋榜文解法「第10期第4题」 AI运筹优化核心卡点:MIP求解器自学习双路径工程解法 一、摘要 本题为该领域顶级技术难题,本文采用工程化可复现逻辑,提供两条标准化解题路径,全程符合工程师技术认知…...

3分钟解锁艾尔登法环帧率限制:告别卡顿的终极完整指南

3分钟解锁艾尔登法环帧率限制:告别卡顿的终极完整指南 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/Eld…...

避坑指南:在Windows/Mac本地用Diffusers库跑通Stable Diffusion U-Net推理的完整流程

避坑指南:在Windows/Mac本地用Diffusers库跑通Stable Diffusion U-Net推理的完整流程 最近在本地尝试运行Stable Diffusion的U-Net推理时,发现网上很多教程要么过于简略,要么假设读者已经具备完整的开发环境。作为一个踩过无数坑的实践者&…...

SCons完整指南:从简单程序到复杂项目的构建自动化

SCons完整指南:从简单程序到复杂项目的构建自动化 【免费下载链接】scons SCons - a software construction tool 项目地址: https://gitcode.com/gh_mirrors/sc/scons SCons是一款功能强大的软件构建工具,它能够帮助开发者自动化从简单程序到复杂…...

Python提高:条件断点的详解-由Deepseek产生

条件断点详解 条件断点(Conditional Breakpoint)是调试器中的一项高级功能:只有当用户指定的条件表达式为真(True)时,程序才会在该断点处暂停。 它解决了“普通断点会每次中断,导致大量无意义停…...

微博超话自动签到工具:终极懒人指南,3分钟掌握高效自动化管理

微博超话自动签到工具:终极懒人指南,3分钟掌握高效自动化管理 【免费下载链接】weibo_supertopic_sign 基于Python/Nodejs的微博超话签到脚本,支持云函数运行或青龙面板运行 项目地址: https://gitcode.com/gh_mirrors/we/weibo_supertopic…...

从STC89C51到蓝牙芯片CC2541:手把手拆解两款经典芯片,看透SOC的‘定制’内核

从STC89C51到蓝牙芯片CC2541:手把手拆解两款经典芯片,看透SOC的‘定制’内核 在嵌入式开发领域,MCU(微控制器)和SOC(片上系统)这两个术语经常被混为一谈,但它们的实际差异远比表面看…...