【问题标题】:distinguish header files from compiler/language standard/os/glibc区分头文件和编译器/语言标准/os/glibc
【发布时间】:2013-12-09 08:00:59
【问题描述】:

/usr/include中有很多头文件,其他地方也有。

一些标头来自 C 语言标准,例如 stdint.h。有些来自编译器,有些来自 glibc。

我应该如何区分它们,因为确定它们的前因可以帮助我推理/理解一些事情......

【问题讨论】:

  • 了解标准中是否包含某些内容的最佳方法是获取标准的副本,然后进行搜索。标准中未提及的任何内容均不来自标准。 :-) 除此之外,它是caveat emptor
  • tks,我会阅读标准,然后寻求帮助

标签: c++ c linux clang


【解决方案1】:

你会发现一些常见的模式:

  • bits/ - 实现细节,你不应该直接使用这些
  • linux/ - 操作系统特定的东西,可能偶尔需要
  • netinet/ - “Internet”的东西,IPv4,TCP(IPv6 在某些系统上位于 netinet6/ 中)
  • gcc/ - 很明显,通常你不会去这里
  • c++/ - 很明显,通常你的 C++ 编译器应该默认包含这个,所以你可以隐式使用它
  • /usr/local/include/ - 由管理员在您的系统上安装但发行版本身或包管理器没有提供的东西
  • foo/ - 通常一个特定的“foo”库(又名 libfoo)会将它放在 /usr/include/ 下

【讨论】:

  • netinet/ 不只是 IPv4,而是一般的 TCP/IP,除了硬件和应用层。
  • @John Zwinck,glibc 的标头是否驻留在特定于操作系统的目录中? tks
  • @basketballnewbie:据我所知,不,一般来说。 glibc 实现了许多您希望直接在 /usr/include/ 下找到的标准东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 2010-12-24
  • 1970-01-01
  • 2011-02-09
  • 2016-02-29
相关资源
最近更新 更多