C语言中头文件搜索的两种模式
尖括号模式
通过尖括号包含的头文件,例如 #include
,默认会从标准系统目录搜索,具体的搜索路径依赖于目标系统,GCC是如何配置的以及GCC安装在哪里。可以通过cpp -v
指令查看默认的搜索路径。
引号模式
通过引号包含的头文件,例如 #include "file"
,会首先从当前文件的目录开始搜索,然后再从标准系统目录搜索。
指定搜索目录
通过-Idir
命令行选项,可以指定自定义的搜索目录。
对于引号模式,在搜索完当前目录之后,才会去搜索 dir 指定的目录,最后再去搜索标准系统目录。
对于尖括号模式,会先搜索 dir 指定的目录,接着再去搜索标准系统目录。
更加细致的控制搜索目录
如果想要只指定引号模式的搜索路径,可以使用-iquote
,该选项只适用于引号模式。-I,-isystem,-idirafter
适用于两者。