LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

linux中头文件的搜索路径

2023年4月11日 209点热度

本文介绍在linux中头文件的搜索路径,也就是说你通过include指定的头文件,linux下的gcc编译器它是如何找到它的呢。在此之前,先了解一个基本概念。

头文件是一种文本文件,使用文本编辑器将代码编撰好以后,以扩充名.h保存就行了。头文件中通常放一些重复使用的代码,比如函数申明、变量申明、常数定义、宏的定义等等。当使用#include句子将头文件引用时,相当于将头文件中所有内容,复制到#include处。#include有两种写法方式,分别是:

#include:直接到系统指定的个别目录中去找个别头文件。

#include“”:先到源文件所在文件夹去找,之后再到系统指定的个别目录中去找个别头文件。

#include文件可能会带来一个问题就是重复应用,如a.h引用的一个函数是某种实现,而b.h引用的这个函数却是另外一种实现,这样在编译的时侯将会出现错误。所以,为了防止由于重复引用而引起的编译错误,头文件常具有:

linux include 头文件 路径_linux 添加include路径_c++ 头文件 include

#ifndefLABEL

#defineLABEL

//代码部份

#endif

的格式。其中LABEL为一个惟一的标号,命名规则跟变量的命名规则一样。常按照它所在的头文件名来命名,比如,倘若头文件的文件名称作hardware.h,这么可以这样使用:

linux include 头文件 路径_c++ 头文件 include_linux 添加include路径

#ifndef__HARDWARE_H__

#define__HARDWARE_H__

//代码部份

#endif

这样写的意思就是linux include 头文件 路径,假如没有定义__HARDWARE_H__,则定义__HARDWARE_H__,并编译下边的代码部份,直至遇见#endif。这样当重复引用时,因为__HARDWARE_H__早已被定义,则下边的代码部份就不会被编译了,这样就防止了重复定义。

c++ 头文件 include_linux include 头文件 路径_linux 添加include路径

一句话,头文件事实上只是把一些常用的命令集成在上面,你要用到哪方面的命令就载入那个头文件就可以了。

gcc找寻头文件的路径(根据1->2->3的次序)

1.在gcc编译源文件的时侯,通过参数-I指定头文件的搜索路径,倘若指定路径有多个路径时,则根据指定路径的次序搜索头文件。命令方式如:“gcc-I/path/where/theheadfile/insourcefile.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"redhat linux 9.0,之后gccinclude_test.c即可

2)include_test.c中#include或则#include,之后gcc–Iincludeinclude_test.c也可

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

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

/usr/include

/usr/local/include

linux 添加include路径_linux include 头文件 路径_c++ 头文件 include

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

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

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

gcc还有一个参数:-nostdinc,它使编译器不再系统缺省的头文件目录上面找头文件,通常和-I联合使用,明晰限定头文件的位置。在编译驱动模块时linux include 头文件 路径,因为非凡的需求必须强制GCC不搜索系统默认路径雨林木风linux,也就是不搜索/usr/include要用参数-nostdinc,还要自己用-I参数来指定内核头文件路径,这个时侯必须在Makefile手指定。

4.当#include使用相对路径的时侯,gcc最终会按照前面那些路径,来最终建立出头文件的位置。如#include就是包含文件/usr/include/sys/types.h

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: gcc include linux系统
最后更新:2023年4月11日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
精通unixshell脚本编程之文件描述符数ulimitulimit-n ubuntu离线安装软件 鸿蒙OS环境搭建过程中遇到的问题及解决方案 写入数据覆盖的分析与执行 解读Rainbond集群的安装和运维的原理,便于用户搭建Rainbond Linux基础知识:文件描述符、文件指针、索引节点 如何解决Linux下的无线网卡驱动的问题? linux 文件描述符 (师)-unused-fdKernel:2.6.14CPUarchitecture Linux系统下如何搭建SVN服务器,详细说明各配置项的功能 修改软件源文件、UI界面设置换源操作|Ubuntu Ubuntu14.04.2为例进行说明,其它Ubuntu版本与此类似 Linux图形界面用户和Windows用户来说获取系统硬件信息都不算问题 Ubuntu下换内核的过程及详细分析内核操作分析 100篇文章内存管理——内存回收入口 Web站点,utsa,,/usp/为读者提供大量资料 Linux内核源码/内存/文件系统/进程管理/设备 TeXLive和MiKTeX两大主要发行版的镜像配置方法 安全增强式Linux(SELinuxLinux)内核修改和用户空间工具 Ubuntu系统下安装字体和切换默认字体的方法系统 896MB如何转换为物理空间(Linux地址映射的分析) 比较流行的Linux系统图形界面环境-Linux社区创作挑战赛
ubuntu离线安装软件 鸿蒙OS环境搭建过程中遇到的问题及解决方案精通unixshell脚本编程之文件描述符数ulimitulimit-nlinux中makefile文件 cdeveloper的第21篇原创技术文章建议横屏Makefile简介Fedora17新特色特色说明桌面环境28bata集成了GNOMELinux嵌入式系统智能手机系统的硬件设计Unix或者类Unix文件系统中的每个文件(或者目录)打开U盘什么文件都看不到小编总结了基于嵌入式Linux的智能手机系统软件的设计与实现如何在Linux中使用Firejail运行应用程序访问某个目录基于嵌入式��闹悄苁只�长沙理工大学C语言教程-Qt.12安装教程05-27Linux有7个运行级别(关机,停机模式、DellG3)(Linux基础知识)文件压缩、打包命令解析的Linux操作系统怎样执行?LinuxDNS服务器,如何安装、配置和维护它?AMD2950x+技嘉x399免驱USB网卡,我的无线网卡linux解压gz文件命令 蓝易云香港五网CN2网络压缩比率的测试环境Linux系统中用于管理和控制系统服务的强大工具介绍围绕API创建封装器的开源项目正变得越来越流行主频93.75MHz的MIPS64NECVR4300处理器在N64上运行
来说一说Python的第三方第三方库可以按照python打包的目录结构要求来搭建 Linux账号密码过期导致无法登录CentOS7模式重置root用户密码 Linux常用命令大全(标记为红色的位必须掌握!) Linux中最常见的ls命令的基本格式(有关主目录) 安装Ubuntu.04,安装NVIDIA驱动配置和tensorflow环境 SSH基于口令认证的安全验证方式机制建议 Linux自主访问控制机制模块详细分析:网络安全标准资料 更为丰富多彩快手直播伴侣app是一款爱看什么视频就能将视頻 Java面试题:线程的运行状态(2) du下所有的文件和文件夹(不含子目录),统计符号链接所指向的大小 服务器上安装linux系统的具体操作过程-如何选择系统? 【讲堂】分为文件指向同一个硬连接的应用 udpsocket编程1.UDP编程框架常用函数小插曲 在多用户多任务中对每个用户运行环境的设置十分重要 Linux基础知识:文件描述符、文件指针、索引节点 Linux启动时,不使用图形界面可能更有效率! 文件传输协议:文件传输的话控制端口21数据端口:20 【干货】Linux下的线程是什么?(二) 自定义登录session时要注意的几个小细节,你知道吗? linux中头文件的搜索路径
标签聚合
文件目录 命令模式 软件 虚拟机 命令 linux脚本 电脑 linux系统 sudo linux服务器
书籍
课程
技术群
技术干货大合集↓
  • 2023年6月 / 18篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.