【问题标题】:Which unistd.h is being included? (c++)包含哪个 unistd.h? (c++)
【发布时间】:2016-06-23 17:22:12
【问题描述】:

我出于教育目的探索这些库时偶然发现了文件 os_defines.h ,该文件在我的 MacBoook 上位于 usr/include/c++/4.2.1/bits 中。在那里我找到了#include <unistd.h>,所以我对该文件进行了快速查找搜索,并找到了不少于 7 个该名称的文件!这些文件不是副本,并且没有一个文件与 os_defines.h 位于同一文件夹中 - 那么究竟包含了哪个文件?

我觉得我错过了一些明显的东西,但我是一个新手,如果有人能照亮我,我将不胜感激。

【问题讨论】:

标签: c++ include libraries unistd.h


【解决方案1】:

好吧,我们无法在 SE 站点上标记重复项(而且我在 Stack Overflow 上也找不到快速的),假设您使用的是 GCC,我将在此处重申 answer

预处理器可以告诉你它使用了什么

cpp -x c++ -v

...

   #include "..." search starts here:
   #include <...> search starts here:
    /usr/include/c++/4.4
    /usr/include/c++/4.4/i486-linux-gnu
    /usr/include/c++/4.4/backward
    /usr/local/include
    /usr/lib/gcc/i486-linux-gnu/4.4.1/include
    /usr/lib/gcc/i486-linux-gnu/4.4.1/include-fixed
    /usr/include/i486-linux-gnu
    /usr/include
   End of search list.

您可以通过设置C_INCLUDE_PATH 和/或CPLUS_INCLUDE_PATH 环境变量将目录添加到搜索路径

【讨论】:

  • @CameronSnell 你可以考虑接受那个答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
相关资源
最近更新 更多