OpenGL 编程/安装/Linux
大多数 Linux 发行版依赖于 Mesa3D 项目来提供他们的 OpenGL 实现。 这为常规 OpenGL 以及 OpenGL ES 1.x 和 2.0 提供库。
您需要安装的软件包的准确名称高度依赖于发行版。 参考您发行版的软件包可以节省您在安装中大量时间和麻烦。 使用您喜欢的软件包管理器搜索软件包名称。 您可能需要安装带有 dev 后缀的软件包,这些是开发软件包(通常是头文件)。 还要寻找以 lib 为前缀的软件包,这些是指库。
安装 GCC C/C++ 编译器和相关工具,如 make。
总而言之,安装 Mesa、Make 和 GCC/g++
sudo apt-get install build-essential libgl1-mesa-dev # Debian, Ubuntu
sudo dnf install make gcc-c++ # Fedora
在这本维基教科书中,我们将大量使用 GLEW、SDL2(+SDL2_Image)、GLM 和 FreeType。 确保您安装了开发库
sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev # Debian, Ubuntu
sudo dnf install glew-devel SDL2-devel SDL2_image-devel glm-devel freetype-devel # Fedora
sudo pacman -S glew sdl2 sdl2_image glm freetype2 # Arch
如果您的发行版存储库中没有 GLM,您可以选择手动安装它。 确保头文件以 /usr/include/glm
目录结尾。 由于它只是一个头文件库,因此您无需编译 .so 库 - 只需将代码复制到那里即可。
OpenGL 是基于 GNU/Linux 的系统上的主要 3D 图形 API。 如果您的设备支持 GNU/Linux 上的 3D 加速,它可能包含 OpenGL 分发版。
OpenGL 包含在驱动程序中,因此如果您想享受使用 OpenGL 的程序,则必须确保驱动程序已正确安装。 开源驱动程序实际上利用了 Mesa 的 OpenGL 实现。 专有驱动程序嵌入他们自己的 OpenGL 库。
Nvidia 通过他们网站上的 nvidia 驱动程序提供通常很棒但非开源的驱动程序。 fglrx 驱动了许多现代 AMD 设备; 它也是闭源的,可从 AMD 网站获得。
如果您的 CPU 是带有内置图形的英特尔 CPU,那么所需的开源驱动程序将作为 Linux 内核的标准部分提供。
如果您拥有最新款芯片之一,您可能被迫使用平庸的 fglrx 驱动程序。 但是由于 AMD 发布了其芯片的规范,开源 'radeon' 已经成为一个功能齐全的 2D 和 3D 驱动程序。
截至 2013 年 6 月,大多数 AMD 芯片可以与开源 'radeon' 驱动程序良好运行。 在现代显卡上,AMD Catalyst 驱动程序的 3D 性能仍然更好,但这可能会在将来发生变化。 检查 功能矩阵 以了解完成状态。
开源 nouveau 驱动程序支持 nVidia 芯片组,但在撰写本文时,它并不像 nVidia 的闭源驱动程序那样完整,3D 支持可能不尽如人意。
Linux 系统上的 OpenGL 驱动程序包含两个文件
- libGL.so 用于 GL 本身; libGL.so 必须对 Linux 库加载程序可访问(请参阅 ldconfig 手册页);
- glx.so(此名称可能会有所不同)用于 Xorg 对 OpenGL 的支持; glx.so 将位于 Xorg 的扩展路径中,并且必须由 xorg.conf 加载(请参阅 xorg.conf 手册页)。
许多 OpenGL 应用程序也需要 libGLU.so; GLU 操作不是硬件加速的,因此 Mesa 提供的实现是一个很好的选择。
在终端中键入此命令以获取有关您的 OpenGL 驱动程序的大量信息,包括支持的扩展
glxinfo | grep OpenGL
教程主要依赖于简单的 Makefile
来构建代码,并让您使用您喜欢的文本编辑器(如 Emacs、vim、gedit、kwrite 等)来编辑源代码。
GNU/Linux 上存在几种 IDE,例如
- Code::Blocks
- Anjuta
- KDevelop
- Eclipse CDT(可以与 Make 接口)
将 Makefiles 适应这些环境非常简单。