#include_next仅用于特殊的场合. 它被用于头文件中(#include既可用于头文件中, 又可用于.c文件中)来包含其他的头文件. 而且包含头文件的路径比较特殊: 从当前头文件所在目录之后的目录来搜索头文件.
比如: 头文件的搜索路径一次为A,B,C,D,E. #include_next所在的当前头文件位于B目录, 那么#include_next使得预处理器从C,D,E目录来搜索#include_next所指定的头文件.
gcc 在编译时如何去寻找所需要的头文件 :
- header file的搜寻会从-I开始
- 然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH
- 再找内定目录 :
- /usr/include
- /usr/local/include
- /usr/lib/gcc-lib/i386-linux/2.95.2/include
- /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
- /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
- 库文件但是如果装gcc的时候,是有给定的prefix的话,那么就是
- /usr/include
- prefix/include
- prefix/xxx-xxx-xxx-gnulibc/include
- prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include
阅读(2863) | 评论(0) | 转发(0) |