文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>GCC -I 指定的目录搜索先于标准库目录

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



排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载