在 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++ 標準頭文件版本目錄。
惠州西湖