Linux头文件引用路径详解 (linux include 头文件 路径)
在Linux系统编程中,头文件是不可避免的。头文件通常包含了需要用到的各种变量、函数和结构体等定义,方便我们直接调用,满足高效编程的需要。然而,不同开发者在编写代码时,头文件引用路径不同,导致出现找不到头文件,编译不通过等一系列问题。本篇文章将详细介绍Linux头文件引用路径的问题,并提供解决方案,以便更好地解决头文件相关的问题。
一、头文件引用路径
头文件路径是编译器查找头文件的依据。在编译C、C++程序时,编译器需要查找和包含代码中用到的头文件。头文件引用路径告诉编译器在哪里可以找到需要的头文件。当编译器找不到一个头文件时,它就会给出一个“无法找到头文件”的错误。
常见Linux头文件路径包括:/usr/include 、/usr/local/include、/usr/lib/gcc/x86_64-linux-gnu/7/include、/usr/include/linux等。其中,/usr/include目录下是大多数系统库的头文件所在目录。除了这些公共目录,还有自定义路径,可以使用“-I”选项来指定每一个路径。比如:-I /home/usr/include等。
二、默认头文件包含路径
当我们编写程序的时候,在编译器里输入头文件路径是容易遗漏的,没有必要这样做。因此,编译器会自动搜索默认的头文件包含路径。
gcc编译器的头文件包含路径:
“`
/usr/include
/usr/local/include/
/usr/lib/gcc/x86_64-linux-gnu/7/include
/usr/include/x86_64-linux-gnu
“`
g++编译器的头文件包含路径:
“`
/usr/include/c++/7
/usr/include/x86_64-linux-gnu/c++/7
/usr/include/c++/7/backward
/usr/lib/gcc/x86_64-linux-gnu/7/include
/usr/local/include
/usr/include
“`
在编写程序时,为了使用标准函数库,需要引用头文件:
“`
#include
“`
当编译器找不到这个头文件时,需要在编译命令行中加入“-I”选项来寻找:
“`
gcc -I/usr/include -c demo.c
“`
上述命令将/usr/include目录添加到搜索路径中。如果头文件存储在另一个不同的位置,就需要指定该路径。
除了使用-I选项指定额外的头文件目录外,还可以使用命令:
“`
gcc -print-search-dirs
“`
来查看编译器的默认搜索路径。
三、自定义头文件包含路径
在实际开发中,我们引用的头文件可能并不在默认的头文件包含路径下,需要我们自己添加。
比如,如果我们自己编写了一个头文件,文件存储在/home/usr/include/my.h,这个路径并没有被编译器默认搜索,需要我们显式地指定该头文件所在的路径。
“`
#include “/home/usr/include/my.h”
“`
在编译时,亦需要指定该头文件所在路径:
“`
gcc -I/home/usr/include -c demo.c
“`
也可以使用如下命令添加多个自定义的头文件包含路径:
“`
gcc -I ~/include -I ~/myHeader -o myProgram myProgram.c
“`
其中,“~”表示用户目录。这个命令将~/include和~/myHeader两个目录添加到头文件搜索路径中,并编译myProgram.c生成myProgram可执行文件。
四、小结