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

Linux+qt:获取.so自身的路径(利用dladdr)

目录

1、QDir::currentPath()

2、QAppllication::appllicationDirPath()

3、获取.so自身的路径(利用dladdr)


Qt中,也有相关的接口获取程序的相关路径的。

先了解下相关的接口:

1、QDir::currentPath()

(1)在Linux系统下,在Qt Creator的编译器里面直接点击运行时候,这个路径是这个编译器所在的位置:

/opt/Qt5.7.1/Tools/QtCreator/bin

(2)要是在终端直接运行这个程序的话,这个路径是当前程序所在的位置:

2、QAppllication::appllicationDirPath()

         而无论你通过何种途径去运行exe文件,QAppllication::appllicationDirPath()的路径始终都是exe文件所在的绝对路径。 因此,如果想要获取固定的exe路径信息,还是建议使用QAppllication::appllicationDirPath()

3、获取.so自身的路径(利用dladdr)

上面2种方法都不能实现获取.so自身的路径,故另辟蹊径。

#include <QDebug>
#include <dlfcn.h>void getCurrentDllPath()
{return;
}void Func()
{Dl_info info;//dladdr获取某个地址的符号信息int rc = dladdr((void*)getCurrentDllPath, &info);if (!rc){QString strError = QString("Problem retrieving program information for %1").arg(dlerror());qDebug() << __FUNCTION__ << strError;return;}QString strPath = "";//info.dli_fname是当前动态库的路径:还带有当前动态库的名字strPath = info.dli_fname;// 主要是把当前的动态库名字部分去掉,只需要当前目录的路径strPath = strPath.mid(0, strPath.lastIndexOf("/"));qDebug() << "Current path : " << strPath;
}

http://www.lryc.cn/news/234941.html

相关文章:

  • CSS特效014:模仿钟摆效果
  • 计算机毕业设计选题推荐-个人健康微信小程序/安卓APP-项目实战
  • 【自然语言处理(NLP)实战】LSTM网络实现中文文本情感分析(手把手与教学超详细)
  • 迭代新品 | 第四代可燃气体监测仪,守护燃气管网安全快人一步
  • 【教3妹学编程-java基础6】详解父子类变量、代码块、构造函数执行顺序
  • 深度学习中文汉字识别 计算机竞赛
  • 从零开始 通义千问大模型本地化到阿里云通义千问API调用
  • Linux(3):Linux 的文件权限与目录配置
  • Linux进程——exec族函数、exec族函数与fork函数的配合
  • 客户端缓存技术
  • Leetcode -2
  • 使用 DFS 轻松求解数独难题(C++ 的一个简单实现)
  • 【SQL server】 表结构的约束和维护
  • 竞赛 题目:基于大数据的用户画像分析系统 数据分析 开题
  • Vue3-ref、reactive函数的watch
  • 【智能家居项目】FreeRTOS版本——多任务系统中使用DHT11 | 获取SNTP服务器时间 | 重新设计功能框架
  • Power BI Desktop数据可视化图表
  • 鸿蒙APP外包开发需要注意的问题
  • Redis 19 事务
  • Fabric多机部署启动节点与合约部署
  • WordPress主题WoodMart v7.3.2 WooCommerce主题和谐汉化版下载
  • Java 高等院校分析与推荐系统
  • 【JVM】Java虚拟机
  • 业务架构、技术架构、项目管理的有机结合
  • 拜耳阵列(Bayer Pattern)以及常见彩色滤波矩阵(CFA)
  • 【信息安全】浅谈IDOR越权漏洞的原理、危害和防范:直接对象引用导致的越权行为
  • uni-app 蓝牙打印, CPCL指令集使用
  • vue-组件通信(二)
  • 2023年【危险化学品经营单位安全管理人员】考试题及危险化学品经营单位安全管理人员模拟试题
  • Uni-App常用事件