GCC -I 指定的目录搜索先于标准库目录
时间:2010-12-04 来源:fireworks2
GCC -I 选项的一点小笔记
-v选项可以列出寻找头文件时的搜索目录
g++ -v -I ./ test.cpp
#include "..." search starts here:
#include <...> search starts here:
./
/usr/include/c++/4.1.2
/usr/include/c++/4.1.2/i586-suse-linux
/usr/include/c++/4.1.2/backward
/usr/local/include
/usr/lib/gcc/i586-suse-linux/4.1.2/include
/usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/include
/usr/include
-I 指定的目录,在使用尖括号引用时,是先于标准头文件目录被搜索的。例如使用了 -I./,且当前目录下有一个 stdio.h,那么在 #include <stdio.h>时,所引用的是当前目录下的stdio.h,而不是系统自带的标准头文件。
可以使用 iquote 选项代替 -I,这样的话,指定的头文件目录不会用于对通过<>引用的头文件搜索。
g++ -v -iquote ./ test.cpp
#include "..." search starts here:
./
#include <...> search starts here:
/usr/include/c++/4.1.2
/usr/include/c++/4.1.2/i586-suse-linux
/usr/include/c++/4.1.2/backward
/usr/local/include
/usr/lib/gcc/i586-suse-linux/4.1.2/include
/usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/include
/usr/include
附(gcc下,<> "" 引入头文件的区别):
1. #include <xx.h> 会先搜索 -I 选项指定的目录,再搜索标准头文件目录
2. #include "xx.h" 会先搜索当前目录,再搜索-iquote 选项指定的目录,接着搜索 <>引入方式时的目录
-nostdinc 选项:不搜索标准的头文件
-iquote 仅仅作为 ""而非<>的搜索路径
参考资料:
http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html
http://stackoverflow.com/questions/1217943/where-are-include-files-stored-ubuntu-linux-gcc/1217952#1217952
-v选项可以列出寻找头文件时的搜索目录
g++ -v -I ./ test.cpp
#include "..." search starts here:
#include <...> search starts here:
./
/usr/include/c++/4.1.2
/usr/include/c++/4.1.2/i586-suse-linux
/usr/include/c++/4.1.2/backward
/usr/local/include
/usr/lib/gcc/i586-suse-linux/4.1.2/include
/usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/include
/usr/include
-I 指定的目录,在使用尖括号引用时,是先于标准头文件目录被搜索的。例如使用了 -I./,且当前目录下有一个 stdio.h,那么在 #include <stdio.h>时,所引用的是当前目录下的stdio.h,而不是系统自带的标准头文件。
可以使用 iquote 选项代替 -I,这样的话,指定的头文件目录不会用于对通过<>引用的头文件搜索。
g++ -v -iquote ./ test.cpp
#include "..." search starts here:
./
#include <...> search starts here:
/usr/include/c++/4.1.2
/usr/include/c++/4.1.2/i586-suse-linux
/usr/include/c++/4.1.2/backward
/usr/local/include
/usr/lib/gcc/i586-suse-linux/4.1.2/include
/usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/include
/usr/include
附(gcc下,<> "" 引入头文件的区别):
1. #include <xx.h> 会先搜索 -I 选项指定的目录,再搜索标准头文件目录
2. #include "xx.h" 会先搜索当前目录,再搜索-iquote 选项指定的目录,接着搜索 <>引入方式时的目录
-nostdinc 选项:不搜索标准的头文件
-iquote 仅仅作为 ""而非<>的搜索路径
参考资料:
http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html
http://stackoverflow.com/questions/1217943/where-are-include-files-stored-ubuntu-linux-gcc/1217952#1217952
相关阅读 更多 +