在 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++ 标准头文件版本目录。

惠州西湖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92362.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92362.shtml
英文地址,请注明出处:http://en.pswp.cn/web/92362.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

change和watch

是的&#xff0c;你理解得很对&#xff01; change 与 v-model 的结合&#xff1a;change 事件通常用于监听 表单元素的变化&#xff0c;但它并不一定意味着值发生了变化。它主要是当 用户与输入框交互时&#xff08;如点击选项、选择文本框内容、提交表单等&#xff09;触发的…

分布式微服务--GateWay(1)

一、什么是微服务网关&#xff08;API Gateway&#xff09; 定义&#xff1a;微服务网关是整个系统请求的统一入口&#xff0c;负责请求转发、过滤处理、安全校验等。 作用&#xff1a; 请求路由 日志记录 权限控制 参数校验 解决跨域问题 黑白名单控制 限流、熔断、降级…

大文件断点续传(vue+springboot+mysql)

断点续传vue前端代码后端代码controller 层service层持久层主表&#xff0c;初始化单次上传文件表&#xff0c;单次上传所有的文件记录文件分块表科普信息参考其他博主 流程图 vue前端代码 这里是只做了demo示例&#xff0c;主线测试没什么问题&#xff0c;前端同学可参考修…

Nodejs》》MySql

Node.js 操作MySQL数据库 文档 # 项目要先安装mysql包npm i mysqlxx // 安装指定版本npm i mysql // 默认安装最新版本 # 连接 mysq// 使用连接池连接const mysql require(mysql)# 建立连接const db mysql.createPool({host:, // 数据库的IP地址user:ro…

金仓数据库常见问题(持续更新)

目录 1.查看大小是否敏感写参数&#xff0c;提示&#xff1a;未认可的配置参数 "case_sensitive" 2.sys_backup.sh init时提示can not connect the primary node 3.设置逻辑备份运行脚本时提示错误are not allowed to use this program (crontab) 4.修改表字段类…

Docker Buildx最佳实践:多架构镜像构建指南

文章目录为什么需要 Docker Buildx安装与启用 Docker Buildx创建多架构构建器实例构建多架构镜像优化构建性能调试多架构构建实战案例&#xff1a;构建 Go 应用多架构镜像总结Docker Buildx 是 Docker 官方推出的扩展工具&#xff0c;用于支持多平台镜像构建&#xff0c;简化跨…

你用的是什么键盘?

在电竞行业飞速发展的当下&#xff0c;游戏键盘作为玩家操作的核心载体&#xff0c;其性能表现直接影响着游戏体验与竞技结果。而赛卓电子推出的磁轴键盘专用芯片 SC4823&#xff0c;凭借一系列突破性的技术特性&#xff0c;正成为游戏键盘领域的性能革新者。​对于游戏玩家而言…

Activiti 中各种 startProcessInstance 接口之间的区别

前言在用 RuntimeService 接口启动流程实例时&#xff0c;总是分不清楚不同 startProcessInstanceXXX 接口之间的区别&#xff0c;这篇文章基于 Activiti 7.0.0.GA 版本&#xff0c;对这一类接口进行一个梳理和归类。详解接口列表RuntimeService 接口中以 startProcessInstance…

新手BUG:函数中 static 变量的赋值语句只会执行一次

在 C 函数中使用 static 变量时&#xff0c;很多新手会陷入一个认知误区&#xff1a;认为变量的初始化语句会在每次函数调用时执行。比如在bool funcA() { // Q&#xff1a;多次调用funcA&#xff0c;funcB会被执行几次&#xff1f;// A&#xff1a;1次static bool value func…

Python 基础详解:数据类型(Data Types)—— 程序的“数据基石”

一、引言&#xff1a;为什么数据类型如此重要&#xff1f;在 Python 编程中&#xff0c;数据类型决定了&#xff1a;数据的存储方式可以对数据执行的操作数据的取值范围不同类型之间的运算规则理解数据类型是编写正确、高效程序的基础。Python 是动态类型语言&#xff0c;虽然你…

WindowsLinux系统 安装 CUDA 和 cuDNN

Windows安装前的准备工作 检查硬件兼容性&#xff1a;确认电脑显卡为 NVIDIA GPU。通过快捷键 Win R 唤出“运行”&#xff0c;输入“control /name Microsoft.DeviceManager”唤出“设备管理器”&#xff0c;点击“显示适配器”查看是否有 NVIDIA 字样。 验证 CUDA 支持性&a…

工业数采引擎-通信链路SOCKET

通信库&#xff1a;DotNetty 封装实现&#xff1a;TcpServer、TcpClient、Udp TCP协议特性&#xff1a;面向连接协议&#xff1b;每个新连接都会创建独立的ChannelHandler实例&#xff1b;TcpHandler构造函数在每次客户端连接时触发 UDP协议特性&#xff1a;无连接协议&#…

PHP小白零基础入门(附视频教程)

概述 PHP是一种通用开源脚本语言&#xff0c;常用于服务器端Web开发&#xff0c;具有语法简单、上手快等特点。视频教程&#xff1a;https://pan.quark.cn/s/8f214c23301b 搭建开发环境&#xff1a; 选择集成工具&#xff1a;可选择XAMPP&#xff08;支持Windows/Mac/Linux…

验证码等待时间技术在酒店自助入住、美容自助与社区场景中的应用必要性研究—仙盟创梦IDE

代码 代码 完整<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>验证码倒计时</title><s…

Flask从入门到实战:基础、进阶、项目架构与接口测试

本文将带你从零开始掌握Flask框架&#xff0c;涵盖基础使用、进阶技巧、项目架构设计&#xff0c;并提供完整的接口测试客户端代码。 目录一、Flask基础入门1.1 Flask简介与安装1.2 第一个Flask应用1.3 路由与请求处理1.4 请求与响应处理二、Flask进阶使用2.1 模板引擎Jinja22.…

华为云产品图解

框架图核心说明: 1. 分层逻辑清晰 基础设施层(IaaS):提供最基础的计算(ECS/BMS)、存储(OBS/EVS)、网络(VPC/CDN)资源,是所有上层服务的 “物理底座”。 平台服务层(PaaS):基于 IaaS 构建,提供容器编排(CCE)、数据库(GaussDB)、大数据与 AI(ModelArts)、中…

Git 中如何回退到以前的提交记录?

回答重点要在 Git 中回退到以前的提交记录&#xff0c;你可以使用 git reset 命令。这个命令有三个常用选项来控制你想要回退的程度&#xff1a;1&#xff09; git reset --soft <commit> &#xff1a;仅修改 HEAD 指针&#xff0c;不修改索引和工作区内容。2&#xff09…

JavaWeb03——基础标签及样式(表单)(黑马视频笔记)

1.表单标签 及 表单属性表单标签是 &#xff1a;<form> 表单属性有&#xff1a;action 和 method&#xff1b;action属性&#xff1a;规定向何处发送表单数据。method属性&#xff1a;规定用什么方法发送数据。&#xff08;get和post&#xff09;get:在发送的url后面拼接…

STM32的SPI通信(软件读写W25Q64)

在了解完I2C通信后&#xff0c;不免会接触到到SPI通信。而一开始&#xff0c;可能会觉得两者好似没什么区别。为什么要学SPI呢&#xff0c;I2C和SPI有什么区别呢。为此我详细展开说说。1.什么是 SPI&#xff1f;SPI&#xff0c;全称 Serial Peripheral Interface&#xff0c;中…

子词分词器(Byte Pair Encoding + WordPiece)

参考文章&#xff1a;子词分词器BPE和WordPiece理解_wordpeice-CSDN博客 子词分词器BPE和WordPiece理解_wordpeice-CSDN博客 WordPiece 和 BPE 的区别-CSDN博客 点互信息&#xff08;PMI&#xff09;和正点互信息&#xff08;PPMI&#xff09;-CSDN博客 https://zhuanlan.z…