【问题标题】:shared library path inconsistent from one host to another从一台主机到另一台主机的共享库路径不一致
【发布时间】:2010-03-23 18:32:55
【问题描述】:

我构建了我的 qt 应用程序,以便它使用的所有 Qt 模块都包含在与可执行文件相同的目录中。它可以在我用来构建应用程序的机器上运行,我确保通过删除除应用程序当前目录之外的所有共享库来测试它。执行 ldd 表明它在当前目录中查找这些库并自行放置可执行文件无法打开可执行文件。所以这一切都很好,但是当我将此目录传输到主机时,它仍然找不到这些库。可能是什么问题?

【问题讨论】:

    标签: qt shared-libraries dynamic-linking


    【解决方案1】:

    是“。”在第二台机器的 LD_LIBRARY_PATH 中?
    您对库文件有正确的权限吗?

    【讨论】:

    • 有没有办法让我在没有用户干预的情况下自动设置此路径,即每当用户从桌面或命令行启动程序时,LD_LIBRARY_PATH 都会被修改。我希望用户能够通过简单地复制目录来安装程序,而无需修改他的登录脚本等。
    • 在 Unix 上没有做太多的应用部署,你需要确保 "."至少在 exec 路径上。可能值得考虑制作适当的 RPM/DEB 以将 .so 放入系统中,而不是弄乱用户编辑路径
    • @yan bellavance:您可以使用您的应用程序名称制作一个脚本,将本地路径添加到 LD_LIBRARY_PATH,然后调用您的真实应用程序。不是最好的做事方式,而是一个相当简单的解决方法。
    猜你喜欢
    • 2015-03-11
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2014-06-16
    • 2015-03-25
    • 1970-01-01
    • 2020-12-29
    • 2017-04-30
    相关资源
    最近更新 更多