qt - 为什么更改 LD_LIBRARY_PATH 在 Ubuntu 中没有效果?

标签 qt ubuntu shared-libraries

我试图在 Ubuntu 16.04 上部署我的应用程序。所以我制作了一个具有以下层次结构的包 -

Package
|
----bin
    |
    -----application
    -----application.sh
    -----Qt
         |
         -----necessary qt libraries
         -----platforms

这是 application.sh 文件 -

#!/bin/sh
export LD_LIBRARY_PATH=`pwd`/Qt
./application

当我执行application.sh 文件时,它显示找不到libQt5MultitimediaWidgets.so.5 文件。但它在 Qt 文件夹中。此外,当我在导出 LD_LIBRARY_PATH 后从 application.sh 文件打印 ldd application 时,它会给我以下输出 -

enter image description here 请检查标记的部分。任何人都可以解释为什么即使在导出 LD_LIBARRY_PATH 之后也找不到 Qt 文件夹中的库吗?

编辑:

所以按照@Zang 的建议,我已经检查了调试日志,这里是 -

请检查标记的部分。

enter image description here

看起来它实际上正在尝试实际的 libQt5MultimediaWidgets.so 然后报告它无法找到它。谁能帮我了解这里发生了什么?

Edit-2:根据@Tarun 的建议,我在我的 Qt 文件夹上运行了 ls -al。这是输出 -

enter image description here

最佳答案

您的 Qt 目录中的所有文件实际上是同一目录中不存在文件的 simlink,因此无法找到它们。

关于qt - 为什么更改 LD_LIBRARY_PATH 在 Ubuntu 中没有效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47682750/

相关文章:

c++ - 拆分 QString 直到第 n 个逗号

Qt如何更改特定QComboBox项目的突出显示颜色

node.js - Sequelize 无法连接到 MySql

c++ - 如何共享我的 C/C++ 项目并隐藏部分源代码?

image - Qt jpeg 无法在我 friend 的电脑上运行

windows - 新行未写入文件(Qt)

linux - DPDK解绑后如何领取网卡?

c++ - cmake 变量和 cmake 参数之间的区别

javascript - 如何使用 angularJS 在多个项目之间共享代码

c - c编译中如何使用共享目标文件