gpt4 book ai didi

qt - 在 Ubuntu/Debian 上为基于 Qt 的应用程序安装文件的位置

转载 作者:行者123 更新时间:2023-12-04 06:51:13 26 4
gpt4 key购买 nike

我正在寻找有关如何为 Ubuntu/Debian 发行版打包基于 Qt 的应用程序的提示。假设应用程序(可执行)是 myapp .运行objdump -p myapp | grep NEEDED ,我看到它具有以下依赖项:

libicuuc.so.44
libicui18n.so.44
libicudata.so.44
libQtGui.so.4
libQtCore.so.4
libpthread.so.0
libstdc++.so.6
libm.so.6
libgcc_s.so.1
libc.so.6

我浏览了几个在线文档(在这个问题的末尾列出),但对 仍然很模糊实际文件的安装位置 .

Debian 文件系统层次标准会建议(我认为)安装 myapp/usr/local/bin但我不确定 ICU 和 Qt 库。使用其中一些库的确切版本很重要。 (他们有正在使用的 API 草案,可能会在 future 的版本中中断。)
  • 我想避免“共享库 hell ”,这样我就会倾向于将它们放在应用程序目录( /usr/local/bin )中,但 Debian 文件系统层次结构标准似乎不鼓励这样做。
  • 我可以把它们放在 /usr/local/lib/myapp但是如何确保动态链接正确的版本?如果我这样做,我需要做什么才能将此目录添加到 LD_LIBRARY_PATH在目标系统上?

  • 正如你所知道的,我对 Ubuntu 系统的打包还很陌生,所以我要走的方向可能完全错误。我很高兴听到其他这样做的人关于他们发现最有效的方法,特别是从稳定性和易于维护的角度来看。

    以下是我到目前为止浏览过的一些文档:
  • Ubuntu Packaging Guide
  • Create Ubuntu deb-package from a Qt-application
  • Debian Filesystem Hierarchy Standard
  • Debian 政策手册(系统上)
  • Debian 开发者引用(在系统上)
  • Debian 新维护者指南(在系统上)
  • 最佳答案

    您需要查看 control 部分。除非您从代码中的源代码构建它们,否则您不应该分发这些共享库。这些库属于您需要为您的包列出为 Depends 或 Build-Depends 的其他包。

    你说你是在 Ubuntu 系统上打包的新手,你打包的平台是什么?如果它只是 Windows,你习惯了 dll hell 。在 Linux 上避免这种情况要容易得多,因为您可以说它需要安装某些库,并且包安装程序知道如何找到这些库。

    关于qt - 在 Ubuntu/Debian 上为基于 Qt 的应用程序安装文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3094862/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com