【发布时间】:2019-02-18 02:17:05
【问题描述】:
我一直在阅读有关使用 OpenGL 进行游戏的跨平台开发的文章。我们正在考虑开发一款可供 Linux 用户使用的游戏。然而,我遇到了一些我不太明白的事情。
如何创建可移植的 linux 可执行文件?具体来说,如何让各种不同版本的 OpenGL / Mesa3D 在一个(或多个)可执行文件中工作(我们不想分发源代码)。
关于 Linux 问题 http://www.linuxquestions.org/questions/linux-software-2/hardware-acceleration-using-opengl-and-x11-876634/ 有人详细介绍了 Mesa3D / OpenGL 的工作原理,但我很难看到我将如何在编译的可执行文件中使用每个发行版的 Mesa3D 版本(甚至不确定它是否是可能的)。
据我所知,我需要在每台用户机器上将应用程序的各个部分动态链接在一起,可能是通过使用安装程序?如果是这种情况,我们能否像 OpenGL 的 dll 在 Windows 上那样在运行时为 Mesa3D / OpenGL 部分编译程序和链接?
【问题讨论】:
-
可以使用共享对象(
.so),类似于.dlls。推荐的方法是预编译用户可以轻松安装的“包”(即.deb、.rpm)。这些包可以声明对其他包的依赖关系,即库的特定版本,然后将自动安装。应该有大量的打包教程。 -
是的,你只需要链接到
libGL.so.1 -
省去麻烦,使用GLEW。
-
@BrettHale:GLEW 只管理扩展。 OP 正在询问 OpenGL 本身。
-
这部分题也是对的!只是我无法将其标记为已回答!
标签: linux opengl executable mesa