我试图在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文件时,它表明无法找到libQt5MultimediaWidgets.so.5文件。但是它在Qt文件夹中。另外,当我在导出ldd application后从application.sh文件中打印LD_LIBRARY_PATH时,它给了我以下输出-

qt - 为什么更改LD_LIBRARY_PATH在Ubuntu中无效?-LMLPHP
请检查标记的零件。谁能解释一下为什么即使导出Qt后也找不到LD_LIBARRY_PATH文件夹中的库吗?

编辑:

因此,如@Zang所建议,我已经检查了调试日志,这是-

请检查标记的零件。

qt - 为什么更改LD_LIBRARY_PATH在Ubuntu中无效?-LMLPHP

好像它实际上尝试了实际的libQt5MultimediaWidgets.so,然后报告它找不到它。谁能帮我了解这里发生的事情吗?

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

qt - 为什么更改LD_LIBRARY_PATH在Ubuntu中无效?-LMLPHP

最佳答案

如果您查看ls -al的输出

qt - 为什么更改LD_LIBRARY_PATH在Ubuntu中无效?-LMLPHP

这些是您所拥有的软链接(soft link)。您的软链接(soft link)libQt5MultimediaWidgets.so.5指向同一目录中的libQt5MultimediaWidgets.so.5.9.2,并且该文件根本不存在。因此,您需要设置正确的软链接(soft link)路径或将文件放在同一目录中

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

10-15 10:23