【问题标题】:Building in different linux-based OS在不同的基于 linux 的操作系统中构建
【发布时间】:2019-08-05 18:19:44
【问题描述】:

我没有 C、qt 和 cmake 方面的经验。

我花了 10 个小时尝试构建这个项目: https://github.com/moonlight-stream/moonlight-qt

可能的主要目标是自己构建并在 Ubuntu 上运行。

README 描述了为了构建我需要安装所有这些库:

openssl-devel qt5-devel SDL2-devel ffmpeg-devel qt5-qtquickcontrols2-devel libva-devel libvdpau-devel opus-devel pulseaudio-libs-devel alsa-lib-devel SDL2_ttf-devel

我正在尝试在 Ubuntu 上构建它,但我发现这些库无法通过简单的“apt”命令安装。我安装了最新的 Fedora,然后使用 yum 安装了库并成功构建了项目。

之后,我将二进制文件复制到了我的 Ubuntu 系统,但我无法运行它。我的 Ubuntu 上缺少很多共享库。此外,我的 Ubuntu 的 qt 版本比在 Fedora 上构建时使用的要旧。

从 github“发布”选项卡下载的 Ubuntu 编译版本运行良好。

因为我不确切知道如何解决我的问题,所以我有 3 个问题:

  1. 在 Fedora 下构建并在 Ubuntu 下运行有意义吗?
  2. 我能否以某种方式强制“make”命令包含所有共享的 要项目的库和 qt 相关库?
  3. 如果没有,也许我可以在 Ubuntu 上安装 yum,然后我可以轻松安装推荐的库?

【问题讨论】:

  • 最好在unix.stackexchange.com上问这个问题
  • 如果在 Ubuntu 上安装所需的库更好,构建项目并使用它。大多数这些库应该可以通过它的包管理器在 Ubuntu 上使用。如果您在 Ubuntu 上找不到某些软件包,请询问此特定软件包。是的,Stack Overflow 不适合解决有关通过包管理器安装包的问题。
  • CMake 与问题有什么关系?请注意,这既不是用于配置项目的qmake,也不是用于构建项目的make

标签: ubuntu build cmake fedora qmake


【解决方案1】:

您需要找到适用于 Ubuntu 的等效库。这些依赖项适用于 RHEL 风格的 Linux(如 Fedora、CentOS 和 RedHat)。例如:

RHEL package   Ubuntu package

openssl-devel  libssl-dev
ffmpeg-devel   libavcodec-dev
qt5-devel      qtdeclarative5-dev
opus-devel     libopus-dev

只需在 Ubuntu 中搜索“PACKAGE_NAME”即可找到等效的包名称。

参考文献

【讨论】:

  • 这个答案很好......但它应该在其他站点上,而不是在 Stack Overflow 上。为什么你会回答一个绝对离题的问题?
  • 这是我一开始尝试做的,但是(例如)即使在安装 libssl-dev 之后,cmake 也没有看到这个库。 @Tsyvarev - 为什么这是题外话?不能在这里问与建筑和图书馆有关的问题吗?
  • "这里不能问关于建筑和图书馆的问题吗?" - 你可以。但目前您的问题是关于通过包管理器搜索库。 “即使安装了 libssl-dev,cmake 也没有看到这个库。” - 请在描述问题时具体。 qmake 打印的究竟是什么?在 Ubuntu 16 上,libssl-dev 提供了 openssl.pc 文件,因此 qmake 使用的 pkgconfig 实用程序应该可以找到该库。
猜你喜欢
  • 2020-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 2020-05-27
  • 1970-01-01
相关资源
最近更新 更多