一尘不染

包含文件的存储位置-Ubuntu Linux,GCC

linux

因此,当我们执行以下操作时:

#include <stdio.h>

#include "myFile.h"

编译器(在我的情况下为GCC)知道stdio.h(甚至是目标文件)在我的硬盘上的位置。它只是利用文件,而没有我的参与。

认为 在我的Ubuntu Linux机器上,文件存储在/usr/include/编译器如何知道在哪里寻找这些文件?
这是可配置的还是仅仅是预期的默认值?我在哪里寻找这种配置?

由于我要问这些包含文件的问题,这些文件的来源是什么?
我知道这在Linux社区中可能很模糊,但是谁来管理这些?谁将为Windows编译器提供和管理相同的文件。

我总是觉得它们 随编译器 一起 提供的,但这只是一个假设。


阅读 281

收藏
2020-06-02

共1个答案

一尘不染

请参阅此处: 搜索路径

摘要:

#include <stdio.h>

当包含文件放在方括号中时,预处理器首先在通过 -I 标志指定的路径中搜索。然后,它搜索标准的包含路径(请参见上面的链接,并使用 -v
标志在您的系统上进行测试)。

#include "myFile.h"

当包括文件是在引号在当前目录中的预处理器首先搜索,然后通过指定的路径 -iquote ,然后 -I 路径,则标准路径。

-nostdinc 可用于完全防止预处理器搜索标准路径。

环境变量也可以用于添加搜索路径。

如果使用 -v 标志进行编译,则可以看到所使用的搜索路径。

2020-06-02