gpt4 book ai didi

c++ - 有关 Linux/POSIX 中特定于平台的宏的文档

转载 作者:IT王子 更新时间:2023-10-29 00:49:13 26 4
gpt4 key购买 nike

当使用 Visual Studio(或试图兼容的编译器)在 Windows 下编译 C/C++ 程序时,有一个预定义的宏 _WIN32(来源:http://msdn.microsoft.com/en-us/library/b0084kay.aspx),您可以将其用于特定于平台的 #ifdef-s .

我正在寻找的是 Linux 下的一个类比:一个告诉我我正在为 Linux/声称(或多或少)兼容 POSIX 的操作系统编译的宏。

所以我查看了 gcc 文档并发现了这个:http://gcc.gnu.org/onlinedocs/cpp/System_002dspecific-Predefined-Macros.html

应用于我的程序,以下宏(gcc 4.4.5 - Ubuntu 10.10)看起来很有前途(我希望我没有放弃一个重要的宏):

#define __USE_BSD 1
#define __unix__ 1
#define __linux 1
#define __unix 1
#define __linux__ 1
#define _POSIX_SOURCE 1
#define __STDC_HOSTED__ 1
#define __STDC_IEC_559__ 1
#define __gnu_linux__ 1
#define __USE_SVID 1
#define __USE_XOPEN2K 1
#define __USE_POSIX199506 1
#define _G_USING_THUNKS 1
#define __USE_XOPEN2K8 1
#define _BSD_SOURCE 1
#define unix 1
#define linux 1
#define __USE_POSIX 1
#define __USE_POSIX199309 1
#define __SSP__ 1
#define _SVID_SOURCE 1
#define _G_HAVE_SYS_CDEFS 1
#define __USE_POSIX_IMPLICITLY 1

我在哪里可以找到它们的详细文档 - 关于上面提到的特定于 Windows 的宏?

此外,我对通常为其他 POSIX 兼容操作系统定义的宏感兴趣,如 *BSD 等。

最佳答案

glibc manual列出了其中的几个宏,包括 _POSIX_SOURCE。然而,它们的工作方式与您的预期不同:程序员定义这些宏(可能在构建脚本中),C 库头文件检查它以启用或禁用某些功能。

关于c++ - 有关 Linux/POSIX 中特定于平台的宏的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4575098/

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