如何在Linux上正确发布C ++软件(游戏)

问题描述 投票:0回答:1

我使用自己新创建的2D / 3D游戏引擎创建了一个小型测试游戏(吃豆克隆)。我没有使用任何IDE来创建它,而仅使用vim和premake5来创建Makefile。我唯一的依赖项是用于窗口创建/事件的SDL2和用于渲染的OpenGL。因此,我没有使用任何框架,例如Unity,Qt,...

该游戏应该是商业性的并且是封闭源代码,否则我将分发源代码,并可能创建诸如.deb之类的软件包。但这不是一个选择。它应以二进制形式原样交付,并且不需要用户安装其他软件包。

假设我想向公众发布该游戏,比如说在GOG或Steam上发布(不是我打算使用此测试游戏,但将来可能会发布其他游戏)。如何正确释放它?

我已经尝试了以下操作:我创建了一个具有最新Ubuntu(最小安装)的VM(因为Ubuntu通常是Linux游戏支持的OS),然后在其上复制了编译的可执行文件。我启动它,并收到有关缺少库的通知。我将库(来自构建可执行文件的Arch Linux中的文件)添加到了同一目录,并将库路径设置为LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:。包括当前目录。我创建了一个start.sh脚本,该脚本在包括该设置的oneliner中启动游戏。

并且它在我的机器上工作,所以我将其传递给使用Linux Mint的人。他无法启动它,因为他得到“找不到GLIBC_2.29”。我不知道是否可以通过我的GLIBC版本。

我想我的Arch Linux(我在其中创建可执行文件的地方)随附的GLIBC版本比他的新版本。

所以,您如何解决这个问题?还是我在此过程上完全犯错了,应该以不同的方式来做吗?

编辑:我发现this link似乎与我使用的方法一致,但是没有提及例如glibc遇到的问题。

c++ linux deployment glibc
1个回答
0
投票

您是否考虑过Flatpak?

它允许您将游戏与所有必需的依赖项一起打包。

此外,还有其他好处,那就是无论选择哪种Linux发行版,每个人都可以在相同的运行时环境中运行游戏。这样您就不会遇到这种情况...

我想我的Arch Linux(我在其中创建可执行文件的地方)随附的GLIBC版本比他的新版本。

© www.soinside.com 2019 - 2024. All rights reserved.