gcc中include文件的搜索路径

编程技术  /  houtizong 发布于 3年前   77
gcc中include文件的搜索路径 (2011-04-27 10:06:37)转载▼
标签: gcc include 头文件搜索路径 it 分类: 编程
这是一个不复杂的问题;但是网上很多回答都不全面;偶找了一个比较全面的(测试过):
引用http://blog.csdn.net/fjb2080/archive/2010/01/23/5247494.aspx
#include有两种形式,例如如下:

#include <syshead.h>#include "userhead.h"

用尖括号表示的是包含系统的头文件,用双引号包含的是用户自己的头文件。

下面是使用#include时的一些规则:

1)使用<>包含的头文件一般会先搜索-I选项后的路径(即用gcc编译时的-I选项),之后就是标准的系统头文件路径。

2)而用""号包含的头文件会首先搜索当前的工作目录,之后的搜索路径才是和<>号包含的头文件所搜索的路径一样的路径。

3)在unix系统中,一般标准的头文件路径为:

/usr/local/include/usr/lib/gcc-lib/target/version/include/usr/target/include/usr/include

4)一般有两条独立的头文件搜索路径链。一条是-I后面指示的路径,另一条是系统头文件路径和以-prefix, -withprefix,和-idirafter后操作的目录。

5)如果gcc编译的是c++的程序,那么在搜索上面所说的目录前,预处理器会首先搜索/usr/include/g++v3目录,v3是你的gcc中c++的版本。

6)在头文件中运行增加路径名,例如:#include <sys/time.h>,那么就会在搜索的系统目录的sys目录下寻找time.h文件。

7)一般会用斜线来作为目录的分割符,甚至有些系统使用不同的字符作为分割符(例如反斜线)。

8)#include后面所包含的文件名就是文件名,例如abc*d.h这个文件,必须就要有abc*d.h这个文件,而不是abckkkd.h这些文件,*不能解释成任 

    何的字符的意思,而是实实在在的一个字符。

9)可以使用一个指定的名字作为#include指令后面的头文件,例如:

#define BOGHEADER "bog_3.h"#include BOGHEADER

10)在#include 指令的后面,除了所包含的头文件和注释外,不能包含其它的任何东西了。

11)#line指令不能改变当前的工作目录。

12)-I-选项可以改变-I指定的搜索目录。


转载:http://blog.sina.com.cn/s/blog_4b9eab320100re29.html
上一篇:fedora之ssh配置
下一篇:gdb nginx

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客