ubuntu 20.04 C和C++的标准头文件都放在哪个目录?
在 Ubuntu 20.04 中,C 和 C++ 标准头文件的存放目录主要由编译器(如 GCC)的安装路径决定,通常分为以下两类:
1. C 标准头文件
C 语言的标准头文件(如 <stdio.h>
、<stdlib.h>
等)默认存放在 系统公共头文件目录:
/usr/include
部分与 C 库(如 glibc)相关的扩展头文件可能存放在子目录中(例如 /usr/include/linux
是 Linux 内核头文件,但属于系统调用相关,非 C 标准)。
2. C++ 标准头文件
C++ 的标准头文件(如 <iostream>
、<vector>
等)由 GCC 的 C++ 编译器(g++
)提供,存放路径与 GCC 版本强相关。Ubuntu 20.04 默认安装的 GCC 版本为 9.x,因此 C++ 标准头文件的主要目录为:
/usr/include/c++/9
若系统中安装了其他版本的 GCC(如通过 sudo apt install gcc-10
安装 GCC 10),则对应版本的头文件会存放在:
/usr/include/c++/10 # 以 GCC 10 为例
如何验证头文件路径?
可以通过编译器的 -v
(详细模式)参数查看头文件搜索路径:
查看 C 头文件搜索路径
执行以下命令,输出中的 #include <...> search starts here:
部分会列出 C 标准头文件的搜索路径:
gcc -v -E -x c /dev/null
典型输出片段:
...
#include <...> search starts here:/usr/lib/gcc/x86_64-linux-gnu/9/include/usr/local/include/usr/include/x86_64-linux-gnu/usr/include
...
查看 C++ 头文件搜索路径
执行以下命令,输出中的 #include <...> search starts here:
部分会列出 C++ 标准头文件的搜索路径:
g++ -v -E -x c++ /dev/null
典型输出片段:
...
#include <...> search starts here:/usr/lib/gcc/x86_64-linux-gnu/9/include/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed/usr/include/x86_64-linux-gnu/usr/include/c++/9/usr/include/c++/9/x86_64-linux-gnu/usr/include
...
总结
- C 标准头文件:主要在
/usr/include
,部分依赖 GCC 运行时库的头文件可能在/usr/lib/gcc/x86_64-linux-gnu/<版本>/include
(如/usr/lib/gcc/x86_64-linux-gnu/9/include
)。 - C++ 标准头文件:主要在
/usr/include/c++/<GCC版本>
(如/usr/include/c++/9
),同时包含版本相关的子目录(如x86_64-linux-gnu
)。
若需确认具体版本,可通过 g++ -v
查看当前默认 GCC 版本,或通过 ls /usr/include/c++
列出所有已安装的 C++ 标准头文件版本目录。
惠州西湖