【发布时间】:2013-09-18 06:57:21
【问题描述】:
在可视化 C++ 项目中,#include "abc/def/g.h" 表示: 嘿编译器,到包含路径的any(如果找到多个,首先找到;如果没有找到,则尝试项目文件所在的目录)在同一磁盘目录下的abc文件夹,然后再进一步进入 def 文件夹并将 gh 文件包含在其中。
是真的吗?
关键是,#include 中出现的路径是磁盘上的物理路径,对吧?
谢谢
【问题讨论】:
-
更正:不是project文件所在目录,而是包含source文件(.c或.cpp)所在目录.它是最先搜索的,而不是最后一个。
-
right - 首先搜索,因为它是双引号;如果我没记错的话,如果它在 中,它将被最后搜索。感谢您的快速回复!
-
如果你
#include <...>,则根本不会搜索源文件的目录。只会搜索包含目录。 -
@John 不,这是一个常见的误解(这就是我列出扩展的原因)。只有原始源文件的位置很重要。
-
@Angew 否。“”包含文件的搜索路径是实现定义的,因为 是标准强制要求的,许多常见的实现使用
#include语句搜索文件的目录。 Question 179213 有更多详细信息和参考链接。