Ubuntu 20.04(arm64)下GCC多个Include目录的差异解析请求
GCC四个Include目录的差异说明
以下是你列出的四个GCC include目录的具体作用和差异:
/usr/lib/gcc/aarch64-linux-gnu/9/include
这是GCC编译器自身专属的头文件目录,存放和编译器版本绑定的核心头文件。比如stddef.h、stdint.h这类基础标准类型定义,还有GCC特有的扩展头文件(比如SIMD指令集相关的mmintrin.h)。这些头文件是编译器工作必需的,版本和你当前使用的GCC 9严格对应。/usr/local/include
这是给用户手动编译安装的软件/库预留的头文件目录。比如你从源码编译安装一个第三方库,默认会把它的头文件放到这里,系统的包管理工具(apt)不会修改这个目录里的内容,适合存放自定义或非官方渠道的软件头文件。/usr/include/aarch64-linux-gnu
这是arm64架构专属的系统头文件目录,存放和硬件架构强相关的头文件。比如系统调用的架构特定定义、asm目录下的arm64汇编相关头,还有一些库针对arm64优化的版本头文件,保证软件在arm64架构上能正确调用硬件相关接口。/usr/include
这是系统通用的标准头文件目录,大部分基础标准库(比如glibc)的通用头文件都在这里。像stdio.h、stdlib.h、string.h这些常用的标准C头,还有系统通用的库头文件,是所有架构通用的基础部分。
内容的提问来源于stack exchange,提问作者Now.Zero
相关产品推荐
相关产品推荐

