gpt4 book ai didi

c++ - 编译器如何知道在哪里可以找到#include

转载 作者:IT老高 更新时间:2023-10-28 22:34:12 25 4
gpt4 key购买 nike

我想知道 Mac OS X、Windows 和 Linux 上的编译器如何知道在哪里可以找到 C 头文件。

具体来说,我想知道它如何知道在哪里可以找到带有<> 的#include括号。

#include "/Users/Brock/Desktop/Myfile.h"    // absolute reference
#include <stdio.h> // system relative reference?

我假设它所咨询的系统上有一个文本文件。它如何知道在哪里寻找标题?是否可以修改此文件,如果可以,此文件位于操作系统的什么位置?

最佳答案

编译器构建后,它知道一些标准位置来查找头文件。其中一些与编译器的安装位置无关(例如/usr/include、/usr/local/include 等),而另一些则基于编译器的安装位置(对于 gcc,由--prefix 运行配置时的选项)。

像/usr/include 这样的位置是众所周知的,并且该位置的“知识”内置在 gcc 中。/usr/local/include 之类的位置不被认为是完全标准的,可以在使用 configure 的 --with-local-prefix 选项构建 gcc 时设置。

也就是说,您可以使用编译器 -I 命令行选项添加新目录来搜索包含文件的位置。当试图包含一个文件时,它会在我在第一段中谈到的目录之前查找使用 -I 标志指定的目录。

关于c++ - 编译器如何知道在哪里可以找到#include <stdio.h>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1899373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com