用于命令行 Linux (ArchLinux) 的简单图形库/API?

问题描述 投票:0回答:1

我想在 ArchLinux 上做一些图形化的东西。没什么大的,只是一些二维线,圆圈之类的。我实际上喜欢低级编码,但我发现 Linux 内核不提供任何对绘制图形的支持(如系统调用或其他)。那么像graphics.h这样的库是如何工作的呢?

我的下一个问题是,如何在 Arch Linux 上安装该库?因为gcc告诉我在我的计算机上找不到graphics.h。您可以安装它或从某处下载源吗?或者这是一个更复杂的任务,因为您无法在命令行模式下绘制图形等?您需要一些额外的 GPU 驱动程序吗?

谢谢您的解答!

c linux graphics archlinux low-level
1个回答
0
投票

Arch 只是一个 Linux 发行版。没有“特定于 Arch 的”库;您可以(并且必须使用)现有的 Linux 目标库之一。

那么像graphics.h这样的库是如何工作的呢?

不确定您指的是哪个

graphics.h
。查看我的 /usr/include ,有多个这样的内容。但是单个标头将永远能够调用X或wayland,您确实需要为此动态链接。

所以,他们不会,无论你怎么想什么都会那样做。

我的下一个问题是,如何在 Arch Linux 上安装该库?因为gcc告诉我在我的电脑上找不到graphics.h。

您似乎在某处找到了一些关于 some 文件的文本,名为graphics.h,并认为这就是您所需要的。不是这样的。

但我发现 Linux 内核不提供任何对绘制图形的支持(如系统调用或其他)

为什么内核会关心这个?它的工作是为硬件提供安全且兼容的接口,而不是执行用户态软件任务。

或者这是一个更复杂的任务,因为您无法在命令行模式下绘制图形等等?

这是 Linux,不是 Windows 95 :) 没有“命令行模式”这样的东西。您“可能”的意思是您想在虚拟终端上绘图,但一般来说,这是文本内容。你不能在上面画画。

framebuffer 控制台

,但这也不是您想要的。 如果您想绘制图形,请在图形环境(即 Wayland 或 X)中进行。所有这些通常要做的就是再次为您的软件提供一个 API,以实际在屏幕上放置区域(Wayland 实际上只是为您的软件提供一个用于绘图的

surface

;X 也这样做,但也提供了非常糟糕的绘图功能,没有人再使用了)。 因为没有一个底层标准,如何绘制事物并且设置事物很麻烦且容易出错,并且 X 和 Wayland 之间有所不同,所以您需要使用一个实际的

library

(而不仅仅是一些名为graphics.h 的头文件,无论在哪里来自),画一些东西。 这已经是最低级的了:你的图形系统给你一些可以画的东西,你就可以画。您需要依靠您的系统来为您做到这一点,因为您无法知道您将面临的硬件、图形系统、颜色模式……。

关于实图:

很多选择。我建议认真考虑一下您是否想用 C 语言构建图形代码 - 这很快就会变得烦人且复杂,而且即使是大型且对性能非常关键的图形引擎也会远离它,这是有原因的。

如果您真的想要尽可能低级,而不必为不同的系统编写自己的抽象,这将比编写图形应用程序花费更多的时间:

听起来像是 SDL 的工作。 SDL 附带示例!或者,如果您更喜欢构建包含绘图的用户界面,则可以选择 DearImgui。 DearImgui 源代码附带了很多示例,在 Linux 上您可能需要 OpenGL3,它是最容易使用的(恕我直言)。

关于:

我的下一个问题是,如何在 Arch Linux 上安装该库?

我实际上喜欢低级编码

嗯,我想如果你喜欢 C 低级编码,你需要更好地理解什么是
header

,什么是 library,什么是 linkingdynamic linking

© www.soinside.com 2019 - 2024. All rights reserved.