尝试运行 Qt 应用程序时 LD_LIBRARY_PATH 失败

2023-12-02

我想在 Linux 上使用动态库运行基于 Qt 5 的应用程序。总之,脚本将复制可执行文件和其他相关文件,包括 a 中所有必需的 .solib文件夹,到所需的目的地和脚本调用gksudo将作为应用程序的调用者。

到目前为止,一切正常,直到我调用可执行脚本:应用程序无法运行。当我要求一起跑步时sudo,它告诉我缺少一个库(Qt5SerialPort...)。跑步ldd在实际的可执行文件中,我发现该应用程序正在获取所需的库,而不是从lib文件夹,但有一些明显的硬编码路径。

我试图通过使用来解决这个问题qt.conf但没有成功。如注here, 看上去qt.conf实际上不应该这样工作。咨询Qt 文档,我决定使用LD_LIBRARY_PATH告诉链接器在哪里可以找到库,因为我已经使用脚本来运行应用程序了。所以最终总结的脚本代码是

#!/bin/sh
LD_LIBRARY_PATH=lib/
export LD_LIBRARY_PATH
sudo ldconfig #sometimes  sudo /sbin/ldconfig -v
gksudo "$INSPATH/myApp" #or sudo instead

问题是它仍然不起作用。当我打电话时echo $LD_LIBRARY_PATH,我可以看到变量已正确编辑,但是当我调用运行行(使用 sudo)时,它一直告诉我找不到 lib。

我缺少什么?


sudo没有通过LD_LIBRARY_PATH:

$ LD_LIBRARY_PATH=lib/
$ export LD_LIBRARY_PATH
$ env | grep LD_LIBRARY_PATH
LD_LIBRARY_PATH=lib/
$ sudo env | grep LD_LIBRARY_PATH

您可以将其设置为以 root 身份运行的命令:

$ sudo env LD_LIBRARY_PATH=/lib env | grep LD_LIBRARY_PATH
SUDO_COMMAND=/usr/bin/env LD_LIBRARY_PATH=/lib env
LD_LIBRARY_PATH=/lib

你会想要类似的东西

sudo env LD_LIBRARY_PATH=/lib "$INSPATH/myApp"

一如既往,要小心sudo!

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

尝试运行 Qt 应用程序时 LD_LIBRARY_PATH 失败 的相关文章

随机推荐

  • Tomcat servlet-api.jar问题

    我正在使用 Tomcat 和 Java Servlet JSP 等运行 Web 应用程序 我知道为了使用Servlet 它依赖于Servlet api jar 文件 最初我把这个jar文件放在 WEB INF lib directory 在
  • 如何在 C# 中从字节数组生成哈希码?

    假设我有一个存储字节数组的对象 并且我希望能够有效地为其生成哈希码 我过去曾为此使用过加密哈希函数 因为它们很容易实现 但它们所做的工作比加密单方面应做的工作要多得多 而且我不关心这一点 我只是使用哈希码作为哈希表的键 这是我今天的内容 s
  • 如何在 SQL Server 表中保存回历日期?什么类型的柱?

    如何在 Microsoft SQL Server 表中保存回历日期 0000 01 01 9999 01 01 什么类型的柱 我选择datetime2 这样对吗 CREATE TABLE dbo MyDates ID int IDENTIT
  • 错误:在 Alpine Docker 映像上安装 PostGIS 时出现无法满足的约束

    好的 所以任务看起来很简单 使用Alpine图像 因为它是轻量级且安全的 来执行一些PostgreSQL数据库创建 迁移 我正在使用以下内容Dockerfile使用代码here FROM alpine latest RUN apk add
  • 高斯过程回归增量学习

    我正在使用高斯过程回归的 scikit learn 实现here我想拟合单个点而不是拟合整组点 但所得的 alpha 系数应保持不变 例如 gpr2 GaussianProcessRegressor for i in range x sha
  • 可以通过 Chrome 扩展程序修改窗口对象吗? [复制]

    这个问题在这里已经有答案了 我想做一个 Chrome 扩展 在里面提供一个新对象window 当在加载了扩展程序的浏览器中查看网页时 我想window mything可通过 Javascript 使用 这window mything对象将具
  • WPF TreeView HierarchicalDataTemplate - 绑定到具有不同子集合的对象

    我正在尝试将集合绑定到 wpfTreeView使用数据模板进行控制 集合中的每个项目 人 还包含两个不同的集合 汽车 书籍 类型为汽车和书籍 以下是所涉及对象的简化列表 以节省空间 public class Person public st
  • 将参数从 Cloud 函数传递到 Dataflow

    我想将 Google Cloud Storage 上上传的文件的文件名从 Cloud Functions 传递到 Dataflow 以便我可以处理上传的文件 我为云函数编写的代码是 const google require googleap
  • NavigationView 获取/查找标题布局

    在我的 NavigationView 中 我有一个带有 id viewId 和活动按钮的标题布局 要设置这些按钮 我在活动中执行以下操作onPostCreate final View panel findViewById R id view
  • ndarray.resize:为 refcheck 参数传递正确的值

    和许多其他人一样 我的情况是我有一个类收集大量数据 并提供一种方法将数据作为 numpy 数组返回 即使在返回数组之后 其他数据也可以继续流入 由于创建数组是一项昂贵的操作 因此我只想在必要时创建它 并尽可能高效地完成它 具体来说 在可能的
  • YARN 应用程序日志在发送到 S3 之前存储在 EMR 中的何处

    我需要将 Yarn 应用程序日志从 EMR 写入 S3 以外的其他源 您能否告诉我应用程序日志在 EMR 主实例中保存在哪里 如果申请作为一个步骤提交给 emr 那么日志将驻留在 var log hadoop steps lt
  • Angular 5将动态html文件添加到DIV中

    我对 Angular 很陌生 我正在尝试将 html 文件作为我的字符串插入并插入到 DIV 元素中 我有我的search component html called div div 组件 ts import Component from
  • Ionic Cordova 构建始终使用 androidx.appcompat:appcompatn 的最新版本并且失败

    我正在运行 ionic cordova build android 并失败 经过两天的研究 尝试了几种方法 终于找到了问题所在 但找不到解决办法 我使用cordova平台10 1 0 它生成像这样的project properties ta
  • 使用 CoreNFC 检测 ISO/IEC 14443(Mifare Ultralight 或 Classic)NFC 卡

    所以我在 WWDC 上能够使用以下代码检测 Apple Labs 提供的 NFC 卡 nfcSession NFCNDEFReaderSession delegate self queue nil invalidateAfterFirstR
  • Eclipse、PyDev 和 Python 配置错误

    我决定尝试使用 Eclipse 和 PyDev 而不是 IDLE 我成功 安装 了 Eclipse SDK 3 7 之后 我按照 PyDev 网站上显示的步骤成功安装了该插件 但是 当尝试配置我的解释器 Python 3 2 3 时 我总是
  • 如何在厨师中运行具有依赖项的食谱?

    我已经配置了工作站这一步开始使用 操作系统 redhat 6 5 我已经启动了一个节点 我这样修改了一本食谱 myCookbook metadata rb name myCookbook maintainer YOUR COMPANY NA
  • 根据条件和分组更新列

    我的数据是 Prod Vend Capac Dema Price p1 v2 2 6 1 p1 v1 3 6 2 p1 v3 3 6 2 p2 v1 1 1 1 p2 v3 2 1 2 p2 v2 5 1 2 p3 v1 5 3 3 p3
  • getSystemService(Context.AUDIO_SERVICE) 上的异常

    我想创建一个应用程序 根据某些设置来挂断来电 这在 Android 1 6 上似乎是不可能的 因此 我决定编写一个应用程序 在通话中断时将铃声更改为静音 问题是 当我调用 getSystemService Context AUDIO SER
  • 旋转多部分对象

    我创建了一个对象 它有大约 7 个以上的部分 包括它的主体和在不同位置 附着 到它的较小部分 我的目标是旋转整个对象 我试着简单地打电话glRotatef angle 0 1 0 在构造整个对象之前 但我意识到这似乎围绕原点旋转 一切 无论
  • 尝试运行 Qt 应用程序时 LD_LIBRARY_PATH 失败

    我想在 Linux 上使用动态库运行基于 Qt 5 的应用程序 总之 脚本将复制可执行文件和其他相关文件 包括 a 中所有必需的 solib文件夹 到所需的目的地和脚本调用gksudo将作为应用程序的调用者 到目前为止 一切正常 直到我调用