1、编译器编译源文件时,处理include指令。
对于#include <include/my.h>,编译器会将路径inlcude/my.h合并到给定的系统路径下去查找。比如,给定系统路径有/sys、/lib,那编译器将搜索/sys/include/my.h、/lib/include/my.h,第一个找到的为准。
对于#include "include/my.h",编译器首先会将路径include/my.h合并到当前源文件所在路径下查找,如果找不到,则合并到给定的系统路径下查找。
2、什么是给定的系统路径?
不同的平台运行的编译器,编译器内部都有预定义的一些系统路径,这是一种大家编程的约定,所以一般这些路径会默认就加入到编译器的系统路径中,gcc可以通过
gcc -v -E -
该命令可以查找预定义的系统路径在,如下图。
编译时,加入-I指令,可以增加查找的系统路径。