提问人:axolotlKing0722 提问时间:11/17/2023 更新时间:11/17/2023 访问量:36
用于命令行 linux (ArchLinux) 的简单图形库 / API?[关闭]
Simple graphics library / API for command-line linux (ArchLinux)? [closed]
问:
我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便用事实和引文来回答。
昨天关闭。
我想在ArchLinux上做一些图形化的东西。没什么大不了的,只是一些 2D 线、圆等等。我实际上喜欢低级编码,但我已经看到 linux 内核没有提供任何对绘制图形(如系统调用或其他)的支持。那么像 graphics.h 这样的库是如何工作的呢?
而且,我的下一个问题是,您将如何在 Arch linux 上安装该库?因为 gcc 告诉我在我的计算机上找不到 graphics.h。您可以安装它或从某个地方下载源代码吗?或者这是一项更复杂的任务,因为您无法在命令行模式下绘制图形?您是否需要一些额外的 GPU 驱动程序?
感谢您的回答!
答:
Arch 只是一个 linux 发行版。没有“特定于 Arch”的库;您可以(并且必须使用)现有的 Linux 目标库之一。
那么像 graphics.h 这样的库是如何工作的呢?
不确定你指的是哪个。查看我的 /usr/include,其中有多个。但是单个标头永远无法调用 X 或 wayland,您确实需要为此进行动态链接。graphics.h
所以,他们没有,不管你怎么想。
而且,我的下一个问题是,您将如何在 Arch linux 上安装该库?因为 gcc 告诉我在我的计算机上找不到 graphics.h。
您似乎在某处找到了有关某个名为 graphics.h 的文件的一些文本,并认为这是您所需要的。事实并非如此。
但我已经看到 linux 内核不提供任何对绘制图形的支持(如系统调用或其他)
为什么内核会关心这一点?它的工作是为硬件提供安全兼容的接口,而不是执行用户空间软件任务。
或者这是一项更复杂的任务,因为您无法在命令行模式下绘制图形?
这是 Linux,而不是 Windows 95 :)没有“命令行模式”这样的东西。你的意思是你想在虚拟终端上画画,但总的来说,这是一个文本的东西。你不能借鉴它。
有帧缓冲控制台,但这也不是你想要的。
如果要绘制图形,请在图形环境(即 Wayland 或 X)中进行。而所有这些通常要做的就是,再次为您的软件提供一个 API 来实际将区域放在屏幕上(Wayland 实际上只是为您的软件提供了一个可以绘制的表面;X 也这样做,但也提供了非常糟糕的绘图功能,没有人再使用)。
因为没有一个底层标准来绘制事物,而且设置事物既繁琐又容易出错,而且 X 和 Wayland 之间也不同,所以你需要使用一个实际的库(不仅仅是一些叫做 graphics.h 的头文件,无论它来自哪里)来绘制一些东西。
这是最低层次的:你的图形系统给你一些可以借鉴的东西,你画。你需要依靠你的系统来为你做到这一点,因为你无法知道硬件、图形系统、颜色模式......你将面对。
关于实际图纸:
很多选择。我建议认真考虑是否要用 C 语言构建图形代码——这很快就会变得非常烦人和复杂,即使是大型且对性能非常关键的图形引擎也要远离它,这是有原因的。
如果你真的想要尽可能低的层次,而不必为不同的系统编写自己的抽象,这将比编写图形应用程序花费更多的时间:
听起来像是 SDL 的工作。SDL 附带了示例!或者,如果您更喜欢构建包含图纸的用户界面,请选择 dearImgui。dearImgui 源代码附带了许多示例,在 Linux 上您可能想要 OpenGL3 的,它最容易使用(恕我直言)。
关于:
而且,我的下一个问题是,您将如何在 Arch linux 上安装该库?
与
我真的很喜欢低级编码
嗯,我认为如果你喜欢 C 低级编码,你需要更好地了解什么是头文件,什么是库,什么是链接和动态链接。
评论