gcc 是否递归搜索 CPATH?
Does gcc search CPATH recursively?
在 Linux 系统上,gcc 是递归搜索 CPATH 环境变量中声明的路径,还是需要明确指定每个 Includes 子目录?
CPATH 指定要搜索的目录列表。编译器精确地搜索这些目录,而不是任何子目录(因此没有递归搜索)。也就是说,给定一个来自 #include "somedir/header.h"
的名称,它将在通过 -I
和 -isystem
指定的目录和通过 CPATH
指定的目录中查找,并将向每个目录添加 /somedir/header.h
这些条目的——仅此而已。
这是有道理的。如果它进行递归搜索,您将不得不担心 <time.h>
等文件的顺序是否正确(因为还有 <sys/time.h>
并且可能会通过递归搜索找到它)。
在 Linux 系统上,gcc 是递归搜索 CPATH 环境变量中声明的路径,还是需要明确指定每个 Includes 子目录?
CPATH 指定要搜索的目录列表。编译器精确地搜索这些目录,而不是任何子目录(因此没有递归搜索)。也就是说,给定一个来自 #include "somedir/header.h"
的名称,它将在通过 -I
和 -isystem
指定的目录和通过 CPATH
指定的目录中查找,并将向每个目录添加 /somedir/header.h
这些条目的——仅此而已。
这是有道理的。如果它进行递归搜索,您将不得不担心 <time.h>
等文件的顺序是否正确(因为还有 <sys/time.h>
并且可能会通过递归搜索找到它)。