因此,当我们执行以下操作时:
#include <stdio.h>
versus
#include "myFile.h"
编译器(在我的例子中是 GCC)知道 stdio.h(甚至目标文件)在我的硬盘上的位置。它只是利用这些文件,没有与我互动。
I think在我的 Ubuntu Linux 机器上,文件存储在/usr/include/
. 编译器如何知道去哪里寻找这些文件?这是可配置的还是这只是预期的默认值?我该去哪里寻找这个配置?
Since I'm asking a question on these include files, what are the source of the files? I know this might be fuzzy in the Linux community but who manages these? Who would provide and manage the same files for a Windows compiler.
我一直有这样的印象:他们come与编译器,但这是一个假设......
看这里:搜索路径 http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html
Summary:
#include <stdio.h>
当包含文件位于括号中时,预处理器首先在通过-I旗帜。然后它搜索标准包含路径(请参阅上面的链接,并使用-v标志以在您的系统上进行测试)。
#include "myFile.h"
当包含文件用引号引起来时,预处理器首先在当前目录中搜索,然后搜索由-iquote, then -I路径,然后是标准路径。
-nostdinc可用于阻止预处理器搜索标准路径。
环境变量 http://gcc.gnu.org/onlinedocs/cpp/Environment-Variables.html#Environment-Variables也可用于添加搜索路径。
编译时如果使用-v标记您可以看到使用的搜索路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)