您的位置:首页 > 其它

ubuntu下默认的头文件搜索路径

2016-01-02 20:00 316 查看
gcc寻找头文件的路径(按照1->2->3的顺序)

1. 在gcc编译源文件的时候,通过参数-I指定头文件的搜索路径,如果指定路径有多个路径时,则按照指定路径的顺序搜索头文件。命令形式如:“gcc -I /path/where/theheadfile/in sourcefile.c“,这里源文件的路径可以是绝对路径,也可以是相对路径。eg:

设当前路径为/root/test,include_test.c如果要包含头文件“include/include_test.h“,有两种方法:

1) include_test.c中#include “include/include_test.h”或者#include "/root/test/include/include_test.h",然后gcc include_test.c即可

2) include_test.c中#include <include_test.h>或者#include <include_test.h>,然后gcc –I include include_test.c也可

 

 2. 通过查找gcc的环境变量C_INCLUDE_PATH/CPLUS_INCLUDE_PATH/OBJC_INCLUDE_PATH来搜索头文件位置。

 

 3. 再找内定目录搜索,分别是

/usr/include

/usr/local/include

/usr/lib/gcc-lib/i386-linux/2.95.2/include

最后一行是gcc程序的库文件地址,各个用户的系统上可能不一样。

    gcc在默认情况下,都会指定到/usr/include文件夹寻找头文件。

    gcc还有一个参数:-nostdinc,它使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头文件的位置。在编译驱动模块时,由于非凡的需求必须强制GCC不搜索系统默认路径,也就是不搜索/usr/include要用参数-nostdinc,还要自己用-I参数来指定内核头文件路径,这个时候必须在Makefile中指定。

一以下来自维基百科:


#include语句的两种语法

#include
语句有两种方式包含头文件,分别是使用双引号
"
"
与左右尖括号
< >
。其区别是(对于不是使用完全文件路径名的)头文件的搜索顺序不同:

使用双引号
" "
的头文件的搜索顺序:
包含该
#include
语句的源文件所在目录;
包含该
#include
语句的源文件的已经打开的头文件的逆序;
编译选项-I所指定的目录
环境变量INCLUDE所定义的目录

使用左右尖括号
< >
的头文件的搜索顺序:
编译选项-I所指定的目录
环境变量INCLUDE所定义的目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息