gpt4 book ai didi

c - 标志 "-D_POSIX_C_SOURCE=200112L"是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-03 23:29:37 26 4
gpt4 key购买 nike

没有它我无法使用连接到互联网所需的库,但我不知道它意味着什么:

-D_POSIX_C_SOURCE=200112L

谁能解释一下?

最佳答案

随着时间的推移,POSIX 经历了多次修订。每个新修订版都更改了它支持的功能集。

此宏定义了您希望构建程序时使用的一组功能。它会影响包含文件的预处理方式,从而产生不同的函数原型(prototype)。例如,某些库会在编译时检查 POSIX_C_SOURCE 级别以确定是否可以使用线程。库可以使用这个定义来确定某些 POSIX 函数是否可用,或者它们是否必须提供自己的实现。

根据维基百科 (https://en.wikipedia.org/wiki/POSIX),POSIX 2001 等同于单一 UNIX 规范版本 3。也许您在原始帖子中提到的版本是第一个定义您需要的网络功能的版本。像 listen() 和 bind() 这样的函数在这个标准中明确指定,而粗略的搜索并没有发现在以前的 POSIX 版本中对它们有任何提及。

如果未指定 POSIX_C_SOURCE,您链接到的库将对可用功能集做出一些假设,或者可能会提示它未定义并放弃。也许您可能正在链接一个需要正确设置此变量的库?

关于c - 标志 "-D_POSIX_C_SOURCE=200112L"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18948661/

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