2007年01月29日 星期一 18:57
#include 指令的两种使用形式 (1) 尖括号告诉编译器在一个或者多个标准系统目录中找到文件 /usr/include /usr/local/include ; (2) 双引号意味着首先搜索本地目录(如果在本地目录找不到,再到标准系统目录中找),但是具体搜索哪个目录依赖于编译器。有些编译器搜索源代码文件所在目录,有些编译器搜索当前工作目录,有些搜索工程文件所在目录。 gcc的本地目录,默认情况下就是源码(.c文件)所在目录,当然也可以用-I指定本地目录(可以用多个-I指定多个本地目录) gcc默认就会搜索/usr/include /usr/local/include的,你还可以设置环境变量CFLAGS=-I /somewhere $CFLAGS来增加搜索路径 # vim source/test.c ---------------------------------- 1 #include <stdio.h> 2 #include "test.h" // 有了 -I include/ , 这里就不需要关心头文件的所在路径了 3 4 int main() 5 { 6 printf("g_int = %d\n", g_int); 7 return 0; 8 } # vim include/test.h ---------------------------------- 1 int g_int = 100; # gcc source/test.c -I include/ # vim stdio.h ---------------------------------- 1 #define printf # vim test.c ---------------------------------- 1 #include "stdio.h" /* 用本地的头文件 */ 2 3 int main() 4 { 5 printf("hi zengxiaolong\n"); 6 } # gcc test.c # ls a.out stdio.h test.c # ./a.out // 没有任何输出 # |