LinuxGod

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

linux中头文件的搜索路径

2023年4月11日 910点热度

本文介绍在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大神网

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

最新 热点 随机
最新 热点 随机
如何在Linux安装字体中用到各种命令如mkfontscale? 自带几个预设,你可以在Numix、Arc或Materia主题样式上创建自己的GTK主题 (架构)为什么要在Linux下写C++程序? Ubuntu中各种类型频繁发生的更新错误以及修复方法 图1.3编程的7个步骤,你知道吗? 虚拟机Linux安装教程及安装流程介绍-苏州安嘉 常用且流行的Linuxshell脚本编写工具:/Vim编辑器 Linux下统计C语言程序执行时间的几种常用方法 Grafana常见的配置选项及常见配置文件介绍-苏州安嘉 开机流程:(BasicInputOutputSystem)基本输入输出系统 (知识点)LinuxGCC的使用方法及汇总 bash和rc有什么区别?文件描述文件问题 (Linux基础知识)定期自动运行程序Linux的基本操作 嵌入式Linux驱动学习笔记01-Ubuntu系统入门教程01 虚拟机模拟分布式结构的安装步骤和安装方法 Linux实现开机自定义的系统服务开机程序主要有两种方法 snap软件包的应用程序之间的依赖问题是什么? (Linux基础知识)Linux自主招生常见问题及解决办法 unix网络编程百度云 Python:为什么要学Python? Linux基础知识:启动脚本文件系统的应用程序分析方法
lrzsz服务器使用命令在线安装使用rz命令本地linux服务器80端口无法访问问题解决可以依次从上往下排查虚拟存储器的操作系统课程,你了解多少?Linux操作系统内核的启动过程及使用者有所启迪HDFS分布式文件系统的设计目标是什么?生态系统上海会计培训-如何获取日期字符串的时间戳?Android应用程序框架篇(2017年9月1日)Linux系统的优化调优策略:优化的分区策略Linux/Unix社区的版块不热闹,高手太忙,偶把自己这几年的Linux学习过程讲讲教程讨论Excel中日期和Unix时间戳之间的转换发车!Linux进程的内存分布长什么样?从服务器获取数据中的时间戳格式的java方法指定端口被哪个进程占用的情况怎么办?探讨!在线转换工具:北京时间和UNIX时间戳和标准安装软件注安装方式步骤及安装方法Linux的一切皆文件-实用程序和API:身份证明检索失败开始->进程的配置文件微控制器简化存储数据的组织形式如何从Elrepo或者源代码来安装最新的Linux内核4.0Linux下ldd命令的使用方法本身不是一个程序
Linux内核开机启动程序详解(一):加载加载程序 问题服务器的安全直接影响着网站安全,可以让网站免遭受攻击 统计日志文件中第四个字段的sum,所用命令 Linux系统的修改权限与默认权限的分类及处理方法 嵌入式linux系统下开发usb摄像头图像采集系统的方法 Linux/Unix社区的版块不热闹,高手太忙,偶把自己这几年的Linux学习过程讲讲 Linux手工进程手工启动进程的2种方式和调度进程 Linux上常见的目录软件常用命令汇总(二种) Linux下Python开发必备技巧,提高效率! Linux服务器上进行项目部署,具体方法如下下载穿透工具的外网可以访问 centos安装显卡驱动 关于Linux内核,你需要知道的一些事儿!! Linux基础知识:文件描述符、文件指针、索引节点 bin文件安装及安装过程中出现的常见错误原因分析 DRAM中的虚拟地址空间的缓存简化内存管理(组图) 高效搭建Linux Android开发环境,轻松提升开发体验 虚拟主机技术极大怎么样?如何选择多个网站.Q. 如何编写一个USB驱动外壳框架:如何搭建这样的一个 通过命令lsblk结果可判断sda3是个逻辑卷LV为根目录/ 为什么有这么多Linux发行版,我们需要所有操作系统? 如何在Linux中使用Firejail运行应用程序访问某个目录
标签聚合
linux系统 文件目录 软件 linux服务器 文件 命令 虚拟机 操作 内核 应用
书籍
课程
技术群
技术干货大合集↓
  • 2023年12月 / 3篇
  • 2023年11月 / 88篇
  • 2023年10月 / 94篇
  • 2023年9月 / 90篇
  • 2023年8月 / 93篇
  • 2023年7月 / 94篇
  • 2023年6月 / 90篇
  • 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 © 2024 linuxgod.net ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang