Linux下Qt程序运行时找不到so的解决办法

2023-11-06

一、全局性设置

  • 将so放入相应的系统lib目录;
  • 修改环境变量,在环境变量中添加so所在路径;
  • 修改一些文件,在其中指定so所在路径。

大概有上面的这3种方式,就不详细说了,相信大家都清楚。

二、指定编译选项

上面介绍的方式,无一例外,都需要修改环境,在我们发布的程序,我们希望不要对环境进行修改。

我们无非就是要求能找到so,仅此而已。

推荐使用指定gcc编译选项来实现。

假设,我们使用Qt开发的程序,希望在程序所在目录下lib/中去寻找so,那么可以在程序工程的.pro文件中,添加如下编译选项:

QMAKE_LFLAGS += -Wl,-rpath=./lib

// 指定多个路径时,使用:分隔,如下
QMAKE_LFLAGS += -Wl,-rpath=./lib:./

则该程序启动时,会在./lib/去找so。当然也可以改成./当前目录下,这就和win下时很像了。

另外,如果程序显示加载1.so,1.so隐式加载调用2.so,出现找不到2.so的问题。那么,可以在1.so代码所属工程.pro中,添加上述的编译选项,就可以解决这个问题。



若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下Qt程序运行时找不到so的解决办法 的相关文章

  • 错误:try using -rpath or -rpath-link

    在使用到动态库的时候 xff0c 出现错误如下 xff1a arm linux bin span class hljs keyword ld span warning libssl span class hljs preprocessor
  • cmake解决动态库soname,rpath以及符号冲突解决方案备忘

    set target properties TGT PROPERTIES NO SONAME TRUE SKIP BUILD RPATH TRUE LINK OPTIONS 34 Wl version script 61 CMAKE CUR
  • maven项目依赖无法关联打包的问题

    现象 A B项目都是maven项目 A是B的依赖jar库 打包或者部署B后发现lib中没有A jar 解决办法 在B项目上右键 打开MyEclipse Web Deployment 看到如下配置 在Web Project Deploymen
  • IDA 介绍和使用

    文章目录 一 IDA 介绍 二 IDA使用 一 IDA 介绍 IDA的新手入门指南 IDA的反编译插件hexrays decompiler 逆向分析工具IDA与开源工具Ghidra Cutter对比测评 IDA Interactive Di
  • 把Spring Boot项目打为可执行jar包

    前言 这两天没太多事了 就去学了一下后端的内容 发现只要有基础了 学其他的还是挺快的 本篇解决的是SpringBoot打成可执行的jar包 在网上找别人直接用命令 可是我这边显示错误 于是就自己查了查 记录一下 步骤 使用IDEA 一 使用
  • qmake 设置动态链接库的加载路径 rpath

    在项目的 pro文件中添加以下代码 注意位置尽量靠前 QMAKE LFLAGS Wl rpath ORIGIN QMAKE LFLAGS Wl rpath ORIGIN lib QMAKE LFLAGS Wl rpath ORIGIN li
  • PyInstaller打包PyQt5程序无法正常显示图片

    我写了一段PyQt5程序 程序中需要显示图片 我在PyCharm中开发时 可以正常的显示图片 但是使用PyInstaller将程序打包为exe之后 同时将图片资源放入exe所在的目录中 即图片路径正确 打开的exe程序却不显示图片 对此 我
  • Idea SpringBoot多模块项目打包血泪史

    本文主要介绍基于Idea的SpringBoot多模块打包中遇到的各种问题以及解决方法 基本概况介绍 小弟之前是用的myeclipse进行的开发 但是在建立多模块的时候却错误的使用了web archtype 然后强转的SpringBoot 在
  • 浅显易懂的GCC使用教程——初级篇

    浅显易懂的GCC使用教程 初级篇 2018 12 17天气暖 属于冬日里出太阳 最近在学习使用gvim 想着抛弃对IDE的依赖同时也是想了解编译的过程 但除了学习gvim繁多的指令外还得先学习使用gcc编译程序 这篇文章将会用浅显易懂的方式
  • IDEA打包失败(多个module之间依赖不能识别)

    背景 开发过程中总会遇到一些不那么合理的架构 一个服务多个module 前后端不分离 于是需要自己打镜像 然后发到docker hub 再起服务 于是就有了第一步 本地打包的过程 idea提供了很方便的打包功能 然后出现异常 异常原因 we
  • Qt5打包——利用自带的windeployqt.exe和工具Enigma Virtual Box

    目录 运行 添加依赖 发布成单一exe形式 运行 选择Release版本 运行一次 Release 运行后会发现多了Release版本 里面有exe 但是双击时会发现缺少一些动态链接库 直接点击后缺少动态链接库 添加依赖 在你的Qt的安装包
  • 使用linuxdeployqt在linux下进行Qt打包发布(超详细)

    首先 来说下 本教程实现的功能 在linux下对开发的Qt应用 进行拷贝依赖文件so等 并打成deb安装包 实现可安装 卸载 安装完毕自动在开始菜单下和桌面添加快捷方式 卸载后自动删除快捷方式 以及删除应用生成的log文件 测试环境 ubu
  • javaFX用IDEA打包导出exe后图片不显示问题

    今天在用idea打包完成了JavaFX项目时 查到了两种方法 一种是用eclipse中的ant直接打包形成可安装的exe文件 见https code makery ch zh cn library javafx tutorial part7
  • pyinstaller 打包应用报错闪退

    请看到最后 解决方案一 用录屏软件录个视频 然后用播放软件打开逐帧查看 找到报错原因 一般是某个包导入错误 重新安装下对应的包 忒麻烦 借鉴大佬的博客 https blog csdn net s740556472 article detai
  • Electron应用图标的配置与生成

    技术选型 1 electron 21 3 3 2 electron vite 1 0 17 3 vue 3 2 45 4 element plus 2 2 32 背景 默认情况下我们使用electron开发的应用使用的图标有四种类型 软件的
  • gcc -c -o编译过程

    gcc编译 分步处理 一 预处理 二 编译 三 汇编 四 链接 一步到位 多模块编译 一次性编译 独立编译 C源文件到可执行文件共经历了4个过程 在使用GCC编译程序时 编译过程可以被细分为四个阶段 包括预处理 编译 汇编 链接 分步处理
  • 使用windeployqt与inno setup实现windows下Qt程序发布打包

    一 使用windeployqt拷贝依赖文件 在发布生成的exe程序时 需要复制一大堆dll 如果自己去复制dll 很可能丢三落四 导致exe在别的电脑里无法正常运行 因此Qt官方开发环境里自带了一个工具 windeployqt exe 1
  • 如何避免在 CMake 安装步骤中删除 RPATH?

    我正在使用 CMake 开发一个 C 项目 在其中构建一个可执行文件foo使用共享库libbar 正在通过添加ExternalProject add 可执行文件build src foo在构建目录中工作得很好 但是 如果我跑make ins
  • C++ 带有运行路径的辅助依赖解析

    我有以下问题 我正在尝试使用默认的 gnu 编译器 gcc 7 和可用的链接器版本在 Ubuntu18 上构建软件 现在我们遇到这样的情况 一个可执行文件可以链接一个共享库 该共享库又链接另一个共享库 因此 可执行文件具有次要依赖性 但次要
  • 附带共享库的 GNU/Linux Firefox 插件(用于无需 root 访问权限的安装)

    该应用程序是一个 Firefox 插件 从 HOME mozilla plugins 加载 因此设置 LD LIBRARY PATH 的包装脚本不是一个简单的选择 据我所知 RPATH 不能引用 HOME 只能是绝对路径 Firefox 尝

随机推荐

  • 2019最新计算机毕业设计-题目汇总大全-系列1

    课设题目 备注 基于NLP ASR及TTS技术的智能语音分析工具 负责语义分析部分 论文替代 基于SpringBoot的用户音乐平台 家装设计公司客户关系系统 基于机器学习的文本语义分析工具 基于微信小程序的私教预约系统 标准化轮胎仓库管理
  • (转)读源码品Caffe - 结构流程篇

    原文链接 https blog csdn net jinzhuojun article details 79834697 背景 本文主要介绍深度学习框架Caffe的工作原理和实现 时至今日 各种深度学习框架百花齐放 百家争鸣 从流行程度来说
  • R软件的rattle安装指南

    rattle安装问题 1 正常安装情况 2 无法正常安装情况 2 1版本号不对应 2 2网络不稳定 2 3文字乱码问题 1 正常安装情况 这是先基于R4 0 0 这个在3 6的版本都成功过 看到有人说4 0 0不能安装 因此特地去安装尝试下
  • maven环境变量配置(超详细!)

    下载地址 官网地址 建议不要下载在C盘 配置过程 1 解压下载好的压缩包 2 此电脑 右键 属性 高级系统设置 环境变量 3 新建一个系统变量 点击系统变量的新建 变量名 MAVEN HOME 变量值 maven解压的目录 通过浏览目录选择
  • pyspark访问hive数据实战

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 之前我们部门在数据分析这边每天的日报都是直接使用hive脚本进行调用 随着APP用户行为和日志数据量的逐渐累积 跑每天的脚本运行需要花的时间越来越长 虽然进行了sql优化
  • 理解内连接中的隐式内连接、显式内连接和外连接中的左外连接、右外连接

    一 多表查询 二 在 MySQL 中创建 book 和 actor 两张表 1 创建 book 表及添加数据 CREATE TABLE book id INT PRIMARY KEY NOT NULL AUTO INCREMEN bookN
  • 容器技术之Docker&K8S

    1 Docker K8S区别 区别 1 k8s是一种开放源码的容器集群管理系统 而Docker是一种开放源码的应用容器引擎 2 k8s是一套自动化部署工具 可以管理docker容器是容器编排层面的 docker是容器化技术 是容器层面的 2
  • Axure RP9笔记--页面自适应

    笔记2 页面自适应 大三的时候曾经对猫耳FM进行重构 使用HTML 现在看看真是一塌糊涂 只做出了静态页面 当时还遇到了个问题 浏览器变成小窗后 里面的内容并不会改变大小 但是现在大部分网站都做了页面自适应 当时还对前端一无所知 今天的学习
  • 如何在macOS中编译LLVM

    第一步 在App Store中搜索并安装Xcode 如果不想安装整个Xcode 可以在terminal中运行以下命令来只安装命令行工具 xcode select install 第二步 安装LLVM的依赖库 首先运行以下命令 以官网为准 来
  • sql尚硅谷day1

    mysql基础 1 通过mysql自带服务端 只限root用户 2 cmd进入mysql命令 mysql h localhost P 3306 u 用户名 p 停止exit 显示数据库 show databases 打开一个库 use 库名
  • 五大板块(5)——字符串

    参考 五大板块 5 字符串 作者 丶PURSUING 发布时间 2021 03 18 16 03 48 网址 https blog csdn net weixin 44742824 article details 114982019 目录
  • 华为OD机试真题-士兵过河II【2023Q2】【JAVA、Python、C++】

    题目描述 一支N个士兵的军队正在趁夜色逃亡 途中遇到一条湍急的大河 敌军在T的时长后达河面 没到过对岸的士兵都会被消灭 现在军队只找到了1只小船 这船最多能同时坐上2个士兵 1 当1个士兵划船过河 用时为 a i 0 lt i lt N 2
  • java: framework from BLL、DAL、IDAL、MODEL、Factory, using MySql 8.0

    sql drop table BookKindList 书目录 create table BookKindList BookKindID INT NOT NULL AUTO INCREMENT 自动增加 BookKindName nvarc
  • G - LR Constraints(AtCoder - arc124_a )

    题目链接 题意 N个卡片 上面的数字为1 k 然后有k个限制条件 每个限制条件有1个字母 ci 和一个数字 ki 如果ci是 L 表示i能够输入的最左边的位置是ki 如果ci是 R 表示i能够输入的最右边的位置是ki 如果能理解题意 这个题
  • simulink的工具箱开发stm32步骤

    1 打开stm32cubeMx 配置芯片信息 记得配置时钟 之前就是因为没有配置time 出现灯不亮的问题 2 打开Matlab 将当前工作目录切换到配置文件的目录IOC配置文件 stm32cubeMx 然后开始调用simulink模块 3
  • linux tcpdump rpm,linux命令——tcpdump

    这样tcpdump就顺利地安装到你的linux系统中 怎么样 很简单吧 二 Tcpdump的使用 tcpdump采用命令行方式 它的命令格式为 tcpdump adeflnNOpqStvx c 数量 F 文件名 i 网络接口 r 文件名 s
  • 在CentOS7中安装JDK1.8并配置环境变量

    在CentOS7中安装JDK1 8并配置环境变量 准备工作 首先下载jdk的压缩包 64位 链接 http pan baidu com s 1o7B1PXK 密码 el7b 1 新建 usr java文件夹 将jdk 8u45 linux
  • HIVE中关于collect_set与explode函数妙用

    hive的复合数据类型 hive中的列支持使用三类复杂的集合数据类型 即 array map及struct 这些类型的名称是保留字 具体用法可参见该篇博文 里面有关于三类基本集合数据类型的操作实例 注 map中可嵌套array类型 例如 定
  • openwrt中samba及ftp服务器设置

    1 挂载点设置 U盘或硬盘格式化为exfat或ext4 挂载点自定义为 mnt sda1 并记得勾 上启用挂载项 2 samba设置 3 ftp设置 新手折腾很久 只会最简单的设置 还没完全搞明白但能用root登录使用了 但自定义用户和匿名
  • Linux下Qt程序运行时找不到so的解决办法

    一 全局性设置 将so放入相应的系统lib目录 修改环境变量 在环境变量中添加so所在路径 修改一些文件 在其中指定so所在路径 大概有上面的这3种方式 就不详细说了 相信大家都清楚 二 指定编译选项 上面介绍的方式 无一例外 都需要修改环