Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux API C++;程序设计 P>我在C++编程领域是相当的绿色,但我最近一直在忙着学习,并且很享受学习过程。_C++_Linux_Winapi - Fatal编程技术网

Linux API C++;程序设计 P>我在C++编程领域是相当的绿色,但我最近一直在忙着学习,并且很享受学习过程。

Linux API C++;程序设计 P>我在C++编程领域是相当的绿色,但我最近一直在忙着学习,并且很享受学习过程。,c++,linux,winapi,C++,Linux,Winapi,不过,我对Linux方面的事情一直很好奇。在我的职业生涯中,我主要使用Windows环境,但Linux在某种程度上仍然存在 我的问题是:鉴于我们在Windows端有Win32 API和visual studio,是否存在与Linux等效的版本?“Linux等价物”是指类似于VisualStudio的IDE(智能感知自动完成的优点)和类似于Win32的API结构?(以KDE/gnome为例)或者如果Linux源代码一直到内核都是现成的,那么最好看看这个,并在我的应用程序中使用适合我想要做的函数调用

不过,我对Linux方面的事情一直很好奇。在我的职业生涯中,我主要使用Windows环境,但Linux在某种程度上仍然存在

我的问题是:鉴于我们在Windows端有Win32 API和visual studio,是否存在与Linux等效的版本?“Linux等价物”是指类似于VisualStudio的IDE(智能感知自动完成的优点)和类似于Win32的API结构?(以KDE/gnome为例)或者如果Linux源代码一直到内核都是现成的,那么最好看看这个,并在我的应用程序中使用适合我想要做的函数调用


我想我可能过于简化了这项雄心勃勃的任务,但我很好奇“幕后”是如何运作的。我学习的最好方法之一就是为自己做事并看到结果。为此,我计划在虚拟机中使用Linux。这样,我至少可以选择快照,并且能够在最坏的情况下恢复到所述快照。

Linux是内核,基于Linux的操作系统远远不止于此。要与linux本身进行交互,您需要使用系统调用,然后,除此之外还有GUI,它可以是X服务器(历史选择)或Wayland(新标准)。两者的工作原理略有不同,并且具有不同的API

如果希望达到win32 api中的功能级别,通常更容易使用更高级别的框架,如GTKmm或Qt。它们比win32稍微贵一些,因为它们是实际图形服务器上的抽象层,但好处是它们也可以在windows上工作(作为win32上的抽象层)。我更喜欢QT,但GTK是一个很好的选择(它是一个C库,但是有一个C++端口,GTKmm)。
至于IDE,我使用QtCreator,这很好。其他选项包括KDevelop、Eclipse、visualstudio(具有linux版本)等等。。。如果你是一个纯粹主义者,可以使用VIM。

如果你想要操作系统级的多平台代码,可以使用支持这两种平台的其他库。VIM+Grep+Ctags+Cscope是查看Linux内核代码的基本要素。Vim(取决于你问谁)比VisualStudio好(以至于VScode有一个Vim插件)。Grep在vim内外都可以进行高级搜索。Ctags+cscope将跳转到您可以轻松跳出的函数定义/调用。此外,关于API,您可能需要的是syscalls。系统调用是从用户程序进入内核函数的入口点。但您可以修改自己的内核或创建内核设备驱动程序。在Windows和Mac操作系统上运行。没有针对Linux的版本。您可能会将其与在某些Linux发行版上运行的版本混淆。不过,这不是IDE。“Wayland(新标准)”对不起,缺少的东西太多了,要想让Wayland完全取代X需要几年的时间。目前wayland不支持多个触摸屏,无法使用其他输入校准触摸屏和更多。如今,wayland是功能的最小子集。我根本无法运行wayland,因为几乎所有与驱动图形卡没有直接关系的东西都丢失了。他们只是说,这将转移到应用程序级别,这意味着每个应用程序都必须重新实现X以前所做的事情。新标准?