gcc中include文件的搜索路径

gcc中include文件的搜索路径

大家好,又见面了,我是全栈君。

#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://www.cnblogs.com/zhoug2020/archive/2012/07/04/2576068.html,如需转载请自行联系原作者

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107908.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python3.8安装scrapy_安装scrapy

    python3.8安装scrapy_安装scrapy抓取网站的代码实现很多,如果考虑到抓取下载大量内容,scrapy框架无疑是一个很好的工具。下面简单列出安装过程。PS:一定要按照Python的版本下载,要不然安装的时候会提醒找不到Python。1.安装Python安装完了记得配置环境,将python目录和python目录下的Scripts目录添加到系统环境变量的Path里(在python2.7以后版本中,安装过程中会有个选项:添加到python…

    2022年9月17日
  • AWG线径对照表_直流电流线径对照表

    AWG线径对照表_直流电流线径对照表铜线直径通常以awg(美国导线规格)作为单位进行测量,24awg的意思是导线形成最后直径前所要经过的孔的数量为24,awg前的数值越大,导线经过的孔就越多,导线的.1、25AWG=0.455mm。2、详细看AWG线径对照表就行,AWG是美国线规的标准。3、AWG(Americanwiregauge)美国线规,是一种区分导线直径的标准,又被称为.不同线径(1毫米以下的)铜线载流量表s=i/j…

    2022年10月21日
  • 数组转对象,对象转数组对不对_对象数组初始化

    数组转对象,对象转数组对不对_对象数组初始化<scripttype=”text/javascript”>//数组转对象vara=[1,2,3,4]varobj={…a}//{0:1,1:2,2:3,3:4}varobj2={}a.forEach((item,index)=>{obj2[index]=item})//{0:1,1:2,2:3,3:4}functiontoObj(a.

    2022年9月11日
  • useGeneratedKeys属性

    useGeneratedKeys属性Springboot中Mybatis配置文件Mapper参数useGeneratedKeys=“true”keyProperty=“id”useGeneratedKeys设置为true时,表示如果插入的表id以自增列为主键,则允许JDBC支持自动生成主键,并可将自动生成的主键id返回…

    2022年6月23日
  • Linux移植之移植步骤

    Linux移植之移植步骤在这里总结一下我在移植Linux2.6.22.6内核过程时的步骤。移植成功后最终能挂接做好的根文件系统,并且启动第一个init程序。移植的步骤如下:1、将网上下载的内核源码文件linux-2.6.2

    2022年7月3日
  • To Noob Json是什么鬼?

    To Noob Json是什么鬼?

    2022年2月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号