我最近刚刚将 Linux 切换到 OpenBSD。到目前为止,我真的很喜欢包含运行系统所需的最低限度的理念,以及强调干净和简单的代码。但是,我面临一个小问题。我是一名程序员,目前我正在尝试和学习如何使用 OpenGL API。然而,与 Linux 不同的是,没有/usr/include/GL
或/usr/local/include/GL
。我正在使用 Intel 显卡驱动程序,如screenfetch
和所示dmesg
。如何安装 Mesa/OpenGL API 头文件?
答案1
请阅读hier(7)
。 Xenocara(OpenBSD 的 Xorg)位于/usr/X11R6
.它甚至应该有单独的分区。
BSD Make 倾向于使用 mk 文件。中的特殊文件/usr/share/mk
。其中一些包括/usr/X11R6/share/mk
.您可以X11BASE
在那里找到变量并将其包含到您的 Makefile 中。
PS:有人建议/usr/local/include
。请注意,OpenBSD 在基本系统和第三方软件之间有非常明确的区别。
/usr/X11R6
是基础系统的一部分。它永远不会去/usr/local
。但只有第三方软件(vim、kde、python)总是转到/usr/local/
.所以:
/usr/include
:基础系统(Xenocara除外)/usr/X11R6/include
:基础系统(Xenocara)/usr/local/include
: 第三方软件。
答案2
我相信您可能正在寻找的标头位于/usr/X11R6/include/GL
. 、gl.h
和(glx.h
以及glu.h
其他人)生活在普通的 OpenBSD 系统上。
您可以pkg-config
在 Makefile 中使用。标准 OpenBSD Mesa 所需的编译器标志由以下给出
pkg-config --cflags osmesa
(返回-I/usr/X11R6/include
)
GL 同样如此:
pkg-config --cflags gl
(返回-I/usr/X11R6/include -I/usr/X11R6/include/libdrm
)
答案3
/usr/include
尝试包含来自、/usr/X11R6/include
和的标头/usr/local/include
。