一、讨论环境
*操作系统:Redhat5/Fedora14
*编译器:gcc 4.5.1
以下言论仅确保在以上环境中适用。别的环境,大家可以通过类比方法,得到启示。
二、C语言头文件的查找路径
C语言,使用include指令,包含头文件,但又细分两种形式:
1、形式一:#include “file1”
gcc先在当前目录(指包含本条#include指令的源文件所在的目录)寻找file1,如果找不到,继续在由-iquote选项(如果有的话)指定的目录中寻找file1。
例如,在文件/usr/include/sys/stat.h中,包含指令#include “types.h”,那么gcc先在/usr/include/sys目录下寻找types.h文件。嗯,在该目录下,确实存在一个types.h的文件。现假设我们把这个文件移动到另一个目录:mv /usr/include/sys/types.h /bar/foo/,我们在编译时,可以通过-iquote选项,在不改变stat.h的情况下,正常编译(当然,通常不建议这样做):
gcc -iquote /bar/foo -I/usr/include/sys *.o
2、形式二:#include <file2>
gcc