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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html怎么动态获取系统时间_代码实现获取当前的地理位置

    html怎么动态获取系统时间_代码实现获取当前的地理位置HTML+JS动态获取当前时间效果图:说明:JavaScript中Date对象创建Date对象的语法:varmyDate=newDate()常用Date对象方法:方法描述Date()返回当日的日期和时间getDate()从Date对象返回一个月中的某一天(1~31)getDay()从Date对象返回一周中的某…

    2022年9月23日
    0
  • goland 2022.01 激活码_最新在线免费激活2022.03.02

    (goland 2022.01 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月2日
    275
  • 数据库索引的实现原理

    数据库索引的实现原理

    2022年2月24日
    52
  • Mac安装telnet_苹果电脑怎么telnet

    Mac安装telnet_苹果电脑怎么telnet问题描述新版本的macos取消了内置的telnet命令安装homebrew1、查看是否已经安装homebrewbrewhelp2、安装homebrew/usr/bin/ruby-e”$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)”使用homebrew安装telnet安装telnetbrewinstalltelnet查看是否安装成功telnet..

    2022年9月2日
    2
  • 硬件设计——外围电路(电源电路)[通俗易懂]

    硬件设计——外围电路(电源电路)[通俗易懂]引言 当我们设计一个完整的电路而言,我们除了要知道我们要设计的主芯片电路,如FPGA,DSP,还要知道一些外围电路,如电源电路,复位电路、晶振电路等等。这篇文章我们先来讲解一下对于如何设计一个电源电路。 正文 首先我们查询主芯片的datesheet,根据datesheet,可知主芯片采用多大的电压才能正常工作,然后我们根据其设计电源电路。每个电子设备都有一个供给能量的电源电路。电源电路有整流电源、逆变电源和变频器三种。常见的家用电器中多数要用到直流电源。直流电源的最简单的供电方法是用电池。..

    2022年5月6日
    69
  • QTime 计时(正计时)

    #include<QDebug>#include<QTime>Widget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);QTimetime;time.start();//开始计时qDebug()<<QTime::currentTime().msec();//打印当前时间

    2022年4月10日
    165

发表回复

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

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