因此,当我们执行以下操作时:
#include <stdio.h>
与
#include "myFile.h"
编译器(在我的情况下为GCC)知道stdio.h(甚至是目标文件)在我的硬盘上的位置。它只是利用文件,而没有我的参与。
我 认为 在我的Ubuntu Linux机器上,文件存储在/usr/include/。 编译器如何知道在哪里寻找这些文件? 这是可配置的还是仅仅是预期的默认值?我在哪里寻找这种配置?
/usr/include/
由于我要问这些包含文件的问题,这些文件的来源是什么? 我知道这在Linux社区中可能很模糊,但是谁来管理这些?谁将为Windows编译器提供和管理相同的文件。
我总是觉得它们 是 随编译器 一起 提供的,但这只是一个假设。
请参阅此处: 搜索路径
摘要:
当包含文件放在方括号中时,预处理器首先在通过 -I 标志指定的路径中搜索。然后,它搜索标准的包含路径(请参见上面的链接,并使用 -v 标志在您的系统上进行测试)。
当包括文件是在引号在当前目录中的预处理器首先搜索,然后通过指定的路径 -iquote ,然后 -I 路径,则标准路径。
-nostdinc 可用于完全防止预处理器搜索标准路径。
环境变量也可以用于添加搜索路径。
如果使用 -v 标志进行编译,则可以看到所使用的搜索路径。