为什么 OpenBSD 上没有 /usr/include/GL 目录?

为什么 OpenBSD 上没有 /usr/include/GL 目录?

我最近刚刚将 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

手册pkg-config(1)

答案3

/usr/include尝试包含来自、/usr/X11R6/include和的标头/usr/local/include

相关内容