linux - 包含文件存储在哪里 - Ubuntu Linux,GCC

标签 linux gcc location include

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

#include <stdio.h>

对比

#include "myFile.h"

编译器,在我的例子中是 GCC,知道 stdio.h(甚至是目标文件)在我的硬盘上的位置。它只是利用文件而没有我的交互。

认为在我的 Ubuntu Linux 机器上,文件存储在 /usr/include/ 中。 编译器如何知道在哪里查找这些文件?这是可配置的还是只是预期的默认值?我在哪里可以找到这个配置?

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

我一直觉得他们编译器,但这是一个假设......

最佳答案

请看这里:Search Path

总结:

#include <stdio.h>

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

#include "myFile.h"

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

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

Environment variables也可用于添加搜索路径。

编译时如果使用 -v 标志,您可以看到使用的搜索路径。

关于linux - 包含文件存储在哪里 - Ubuntu Linux,GCC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1217943/

相关文章:

linux - wget:服务器返回错误:HTTP/1.1 202 已接受

c++ - 测量执行时间——在程序代码中还是在 shell 中?

c++ - GCC:函数包装器模板问题

unix - 更改unix中GCC的编译顺序会删除文件吗?

flutter - 如何使用 flutter compass 找到方向?

linux - 可以在挂载的文件系统上创建和删除文件,但不能创建链接或更改所有权

linux - 脚本未通过 crontab 运行

c++ - 声明/定义顺序依赖

javascript - 用户提交位置后重新居中 Google map

Android位置提醒项目