gpt4 book ai didi

c++ - 'windows.h',其他平台呢?

转载 作者:行者123 更新时间:2023-12-03 07:09:08 26 4
gpt4 key购买 nike

我在Windows上使用Visual Studio,并且有一个名为windows.h的头文件,它当然使我可以访问win32 API。
但是当我尝试使用其他平台API(例如linux API)时。我找不到任何具有该名称的头文件,这意味着我不能使用Windows以外的任何其他OS API,
现在这里的问题是:如果我不想制作一个跨平台程序该怎么办?当我无法正确访问其API时,我曾尝试进行一段时间的研究,但无法得到我的问题的任何答案,这确实困扰着我,因此更具体地说,这些是我的问题:
1-为什么我只能在所有其他操作系统中使用Windows API?
是因为我在Windows上进行编码,所以如果我在“其他地方”进行编码,会有所不同吗?
还是与编译器本身有关?
2-如果要使用其他API,必须使用外部库怎么办?如果是这种情况,那么c++跨平台的标准库怎么样,我的意思是,如果它是跨平台的,那么应该存在该库提供的其他特定于平台的 header ,对吗?

最佳答案

but when I try to use other platforms API like the linux API for example. I don't find any header file with that name


系统API没有名为 <linux>的 header 。 POSIX操作系统规范(Linux遵循该规范)列出了几个 header ,这些 header 包含您可能在该系统上的Windows.h中找到的功能。 POSIX规范与C标准库重叠,并且C标准库实现还提供POSIX特定的 header 。有关 header 的完整列表,请参见Linux手册或POSIX规范。

what if I want to use another [system] API


您至少需要该API的头文件才能编译调用它们的程序。此外,您将需要库归档文件才能链接程序。而且,您需要告诉编译器您所针对的系统。默认情况下,所有编译器均假定您以运行该编译器的系统为目标。您需要查阅编译器的文档,以了解是否可以进行交叉编译以及如何进行交叉编译。
或更简单的方法:在提供API的系统上进行编译。 header 可能需要单独安装。

... how is the Standard Library in c++ cross platform


每个系统都有自己的标准库。标准库的某些实现是跨平台的,但不是全部。例如,libstdc++(它是GNU项目的一部分,是Linux中的默认标准库),它在包括Windows在内的许多平台上都可用。相比之下,Msvc标准库仅在Windows上可用。

关于c++ - 'windows.h',其他平台呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63537346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com