在 Ubuntu 上,使用 gcc 时,头文件一般位于以下几个地方(按常见程度排序):
stdio.h, stdlib.h)/usr/include
例如:
ls /usr/include/stdio.h
iostream, vector)/usr/include/c++/
例如:
ls /usr/include/c++/11/iostream
(版本号可能是 9、10、11、12 等,取决于 Ubuntu 版本)
这些通常不是你手动包含的,但 gcc 会用到:
/usr/lib/gcc/x86_64-linux-gnu/<gcc-version>/include
例如:
/usr/lib/gcc/x86_64-linux-gnu/11/include
里面常见如:
stddef.hstdarg.hstdint.h(有时)查看 gcc 版本:
gcc --version
/usr/include/linux
/usr/include/asm
/usr/include/asm-generic
例如:
ls /usr/include/linux/kernel.h
注意:这是 用户态头文件,不是内核源码
通过 apt 安装的库,一般在:
/usr/include
/usr/include/<libname>
例如:
/usr/include/opencv4
/usr/include/SDL2
你可以让 gcc 告诉你它去哪找头文件:
echo | gcc -E -Wp,-v -
echo | g++ -E -Wp,-v -
输出中 #include <...> 后面的路径就是搜索顺序。
如果你自己放头文件:
gcc main.c -I/path/to/headers
Ubuntu 上 gcc 头文件主要在
/usr/include和/usr/lib/gcc/.../include
如果你愿意,可以告诉我:
我可以给你更精确的路径。