首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建不同的基于linux的操作系统

构建不同的基于linux的操作系统
EN

Unix & Linux用户
提问于 2019-03-15 20:14:00
回答 1查看 108关注 0票数 0

我对C,qt和cmake没有经验。

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

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

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

代码语言:javascript
复制
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“命令来安装。我尝试过使用ubuntu的库,但是(例如)在安装"libssl-dev“之后,cmake安装了最新的Fedora,然后使用yum安装了libs并成功地构建了项目。

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

Ubuntu从github "releases“选项卡下载的编译版本运行良好。

因为我不知道如何解决我的问题,我有三个问题:

  1. 在Fedora下构建并在Ubuntu下运行是否有意义?
  2. 我是否可以强制"make“命令包括所有那些共享库和与qt相关的库来进行项目?
  3. 如果不是,也许我可以在Ubuntu上安装yum,然后我可以轻松地安装推荐的libs?
EN

回答 1

Unix & Linux用户

发布于 2019-03-16 02:17:40

  1. 在Fedora下构建并在Ubuntu下运行有意义吗?

不,不要试。至少不是那样的。有时,您可以在“姐妹”发行版之间迁移(例如:在Debian、Ubuntu和Mint之间,或者在CentOS、Fedora和RHEL之间)。但是,当在主要的分叉之间交叉时,您几乎总是会遇到您所见过的问题,例如不匹配的库版本。

  1. 我是否可以强制"make“命令包括所有那些共享库和与qt相关的库来进行项目?

实际上,可以手动复制所有共享库并使用这些库。唯一的挑战可能是他们之间的不同内核。但我不推荐这个。你不会让make这么做的。找到该项目构建的可执行文件或.so,并检查使用ldd需要哪些库。在运行之前,您需要将它们放在目录中并设置LD_图书馆_路径。同样,这是不可取的。

  1. 如果不是,也许我可以在Ubuntu上安装yum,然后我可以轻松地安装推荐的libs?

这是个更糟糕的主意。我不想想到这两个系统会如何对抗和破坏你的操作系统。

是您最好的选择:让构建在Ubuntu

上工作

如果它真的不会在github上建立一个问题。

这些包很可能存在于Ubuntu,但是您可能需要研究这些包的名称,因为与Fedora相比,它们在Ubuntu下是不同的。例如,libssl-dev

从搜索名字的最小部分开始.例:

代码语言:javascript
复制
apt-cache search libssl

  cl-plus-ssl - Common Lisp interface to OpenSSL
  dcmtk - OFFIS DICOM toolkit command line utilities
  libdcmtk-dev - OFFIS DICOM toolkit development libraries and headers
  libdcmtk14 - OFFIS DICOM toolkit runtime libraries
  dlang-openssl - D version of the C headers for openssl
  libssl-ocaml - OCaml bindings for OpenSSL (runtime)
  libssl-ocaml-dev - OCaml bindings for OpenSSL
* libssl-dev - Secure Sockets Layer toolkit - development files
  libssl-doc - Secure Sockets Layer toolkit - development documentation
  libssl1.1 - Secure Sockets Layer toolkit - shared libraries
  perl-openssl-defaults - version compatibility baseline for Perl OpenSSL packages
  r-cran-openssl - GNU R toolkit for encryption, signatures and certificates based on OpenSSL
  libssl-utils-clojure - library for SSL certificate management on the JVM
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/506595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档