【发布时间】:2018-05-20 20:00:33
【问题描述】:
我试图在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 文件夹中。此外,当我在导出LD_LIBRARY_PATH 后从application.sh 文件中打印ldd application 时,它会给我以下输出 -
请检查标记的部分。谁能解释为什么即使在导出LD_LIBARRY_PATH 之后也找不到Qt 文件夹中的库?
编辑:
正如@Zang 所建议的,我检查了调试日志,这里是 -
请检查标记部分。
似乎它实际上正在尝试实际的libQt5MultimediaWidgets.so,然后报告它无法找到它。谁能帮我理解这里发生了什么?
Edit-2: 根据@Tarun 的建议,我在我的Qt 文件夹上运行了ls -al。这是输出 -
【问题讨论】:
-
使用
export LD_DEBUG=all启用加载器调试输出 -
@ZangMingJie 我已经做到了,并在编辑中添加了一些相关信息。你能查一下吗?
-
您在混合 32 位和 64 位版本吗?检查so文件架构。
-
可能是某种权限问题?你可以
ls -al <highlighted path>看看会发生什么吗? -
我在那里看不到实际文件?软链接指向同一文件夹中的文件,我没有看到该文件
标签: qt ubuntu shared-libraries