Linux环境下编程遇到“fatal error:stdio.h:没有那个文件或目录”错误解决办法

news2025/2/28 3:13:08

我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下linux环境下如何解决一个常见的问题,也就是“fatal error:stdio.h:没有那个文件或目录”错误。

不少初学者在linux环境下用gcc编译C语言时,经常会遇到这个问题。

比如当你写好C语言代码时,你一般会用gcc -o test001 test001.c去编译这个C语言代码,但是一般会弹出这个错误提示,如下图:

 那这样弄下去,永远无法编译通过了。

为什么会这样?

这个主要就是因为上面安装的gcc版本不对,和软硬件不兼容,导致了这个问题。

下面我们来说解决办法。

quzhou@quzhou-L410-KLVU-WDU0:~/桌面$ gcc -o test001 test001.c
test001.c:1:9: fatal error: stdio.h: 没有那个文件或目录
    1 | #include<stdio.h>
      |         ^~~~~~~~~
compilation terminated.

当看到如上错误提示后,我们立即输入下面命令卸载gcc

quzhou@quzhou-L410-KLVU-WDU0:~/桌面$ sudo apt-get remove gcc
[sudo] quzhou 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:
  cryptsetup cryptsetup-bin libyaml-cpp0.6 localechooser-data user-setup
使用'sudo apt autoremove'来卸载它(它们)。
下列软件包将被【卸载】:
  gcc
升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 23 个软件包未被升级。
解压缩后将会空出 51.2 kB 的空间。
您希望继续执行吗? [Y/n] y
(正在读取数据库 ... 系统当前共安装有 186794 个文件和目录。)
正在卸载 gcc (4:9.3.0-11.185.1kylin2k6) ...
正在处理用于 man-db (2.9.1-1kylin0k1hw1) 的触发器 ...

然后赶紧安装一下适合本系统的gcc版本

quzhou@quzhou-L410-KLVU-WDU0:~/桌面$ sudo apt-get install gcc
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:
  cryptsetup cryptsetup-bin libyaml-cpp0.6 localechooser-data user-setup
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
  libc-dev-bin libc6 libc6-dev libcrypt-dev manpages manpages-dev
建议安装:
  gcc-multilib autoconf automake libtool flex bison gdb gcc-doc glibc-doc
下列【新】软件包将被安装:
  gcc libc-dev-bin libc6-dev libcrypt-dev manpages manpages-dev
下列软件包将被升级:
  libc6
升级了 1 个软件包,新安装了 6 个软件包,要卸载 0 个软件包,有 22 个软件包未被升级。
需要下载 8,821 kB 的归档。
解压缩后会消耗 22.5 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 https://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-pv/main arm64 libc6 arm64 2.31-0kylin9.1k20.6 [2,495 kB]
获取:2 https://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-pv/main arm64 manpages all 5.05-1 [1,352 kB]
获取:3 https://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-pv/main arm64 gcc arm64 4:9.3.0-11.185.1kylin2k6 [7,100 B]
获取:4 https://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-pv/main arm64 libc-dev-bin arm64 2.31-0kylin9.1k20.6 [293 kB]
获取:5 https://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-pv/universe arm64 libcrypt-dev arm64 1:4.4.10-10kylin4k3 [113 kB]
获取:6 https://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-pv/main arm64 libc6-dev arm64 2.31-0kylin9.1k20.6 [2,293 kB]
获取:7 https://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-pv/main arm64 manpages-dev all 5.05-1 [2,267 kB]
已下载 8,821 kB,耗时 1秒 (7,505 kB/s)
正在预设定软件包 ...
(正在读取数据库 ... 系统当前共安装有 186758 个文件和目录。)
准备解压 .../libc6_2.31-0kylin9.1k20.6_arm64.deb  ...
正在解压 libc6:arm64 (2.31-0kylin9.1k20.6) 并覆盖 (2.31-0kylin9.1k20.5) ...
正在设置 libc6:arm64 (2.31-0kylin9.1k20.6) ...
正在选中未选择的软件包 manpages。
(正在读取数据库 ... 系统当前共安装有 186758 个文件和目录。)
准备解压 .../0-manpages_5.05-1_all.deb  ...
正在解压 manpages (5.05-1) ...
正在选中未选择的软件包 gcc。
准备解压 .../1-gcc_4%3a9.3.0-11.185.1kylin2k6_arm64.deb  ...
正在解压 gcc (4:9.3.0-11.185.1kylin2k6) ...
正在选中未选择的软件包 libc-dev-bin。
准备解压 .../2-libc-dev-bin_2.31-0kylin9.1k20.6_arm64.deb  ...
正在解压 libc-dev-bin (2.31-0kylin9.1k20.6) ...
正在选中未选择的软件包 libcrypt-dev:arm64。
准备解压 .../3-libcrypt-dev_1%3a4.4.10-10kylin4k3_arm64.deb  ...
正在解压 libcrypt-dev:arm64 (1:4.4.10-10kylin4k3) ...
正在选中未选择的软件包 libc6-dev:arm64。
准备解压 .../4-libc6-dev_2.31-0kylin9.1k20.6_arm64.deb  ...
正在解压 libc6-dev:arm64 (2.31-0kylin9.1k20.6) ...
正在选中未选择的软件包 manpages-dev。
准备解压 .../5-manpages-dev_5.05-1_all.deb  ...
正在解压 manpages-dev (5.05-1) ...
正在设置 manpages (5.05-1) ...
正在设置 gcc (4:9.3.0-11.185.1kylin2k6) ...
正在设置 libcrypt-dev:arm64 (1:4.4.10-10kylin4k3) ...
正在设置 libc-dev-bin (2.31-0kylin9.1k20.6) ...
正在设置 manpages-dev (5.05-1) ...
正在设置 libc6-dev:arm64 (2.31-0kylin9.1k20.6) ...
正在处理用于 man-db (2.9.1-1kylin0k1hw1) 的触发器 ...
正在处理用于 libc-bin (2.31-0kylin9.1k20.5) 的触发器 ...
/sbin/ldconfig.real: /usr/lib/libtinyxml2.so.8 is not a symbolic link

通过这样安装后,我们再用gcc -o进行编译,你就会发现一切正常了,所有问题都解决了。

如果本文帮你解决了问题,留言给个赞吧

作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工具推荐二

&#xff08;点击上方公众号&#xff0c;可快速关注&#xff09; GUI框架 我是个后端程序员&#xff0c;使用GUI框架的机会很少&#xff0c;主要用来编写个人或工作中的一些小工具上&#xff0c;经验有限&#xff0c;仅供参考。 Tk框架这个框架tcl语言自带&#xff0c;在python…

海报图片生成服务在狐友的落地实践

本文字数&#xff1a;22817字 预计阅读时间&#xff1a;58分钟 项目背景 狐友作为搜狐的一款社交产品&#xff0c;在流量传播上有着旺盛的需求点。而在流量传播所需的众多载体之中&#xff0c;海报图片以其简单的分享形式、可定制的视觉体验、自带二维码识别导流等特点&#xf…

入门与 Follow GPT 的路径分析:LLM 道阻且长,行则将至

动手点关注 干货不迷路 本文只用于技术交流&#xff0c;仅代表作者个人观点。 作为 CEO&#xff0c;Sam 将 OpenAI 的内部氛围组织的很好&#xff0c;有位 OpenAI 的前员工告诉拾象团队&#xff0c;当 2018 年 GPT-2 的论文被驳回时&#xff0c;Sam 在团队周会上将拒信的内容朗…

ONES X 高测股份|用数字化,重构新材料企业的研发管理体系

近日&#xff0c;ONES 签约高硬材料切割的领军企业——高测股份&#xff0c;助力高测股份建立有效、规范的研发测试管理体系&#xff0c;实现项目管理、测试管理、知识库管理、工时管理、组织效能管理等端到端的研发管理&#xff0c;提升测试效率和产品交付质量&#xff0c;并进…

用Python+OpenCV+Yolov5+PyTorch开发的车牌识别软件(包含训练数据)

目录 演示视频 软件使用说明 软件设计思路 演示视频 这是一个可以实时识别车牌的软件&#xff0c;支持图片和视频识别&#xff0c;以下是软件的演示视频。 车牌识别软件 点击查看代码购买地址 软件使用说明 1. 下载源码后&#xff0c;首先安装依赖库。项目所用到的依赖库已…

bash shell 基础命令

章节目录&#xff1a; 一、浏览文件系统1.1 Linux 文件系统1.2 遍历目录 二、列出文件和目录三、处理文件3.1 创建文件3.2 复制文件3.3 命令行补全3.4 链接文件3.5 文件重命名3.6 删除文件 四、管理目录4.1 创建目录4.2 删除目录 五、查看文件内容5.1 查看文件类型5.2 查看整个…

【Linux】Linux编辑神器vim的使用

目录 一、Vim的基本概念 二、Vim的基本操作 1、进入vim 2、正常模式切换至插入模式 3、插入模式切换至正常模式 4、正常模式切换至底行模式 5、退出Vim编辑器 三、Vim正常模式命令集 1、移动光标 2、删除文字 3、复制 4、替换 5、撤销 四、Vim底行模式命令集 1、列出行号 2、光…

【Linux】进程信号捕捉

前言 在【Linux】进程信号及信号产生中&#xff0c;我们提到&#xff0c;进程接收到信号&#xff0c;并不是立刻处理&#xff0c;而是在合适的时候才执行相应的动作&#xff0c;那合适的时候是什么时候呢&#xff0c;进程捕捉信号的过程究竟是怎么样的呢&#xff1f;本篇博客就…

Python入门(七)if语句(二)

if语句&#xff08;二&#xff09; 1.if语句1.1 简单的if语句1.2 if-else语句1.3 if-elif-else结构1.4 使用多个elif代码块1.5 使用多个elif代码块 2.使用if语句处理列表2.1 检查特殊元素2.2 确定列表不是空的2.3 使用多个列表 作者&#xff1a;xiou 1.if语句 前面我们理解了…

React Native技术探究:开发高质量的跨平台移动应用的秘诀

作为一个跨平台移动应用开发框架&#xff0c;React Native在开发过程中能够有效提高开发效率、降低开发成本、缩短上线时间&#xff0c;因此备受开发者的欢迎。然而&#xff0c;如何使用React Native开发出高质量的跨平台移动应用呢&#xff1f;本文将探究这个问题&#xff0c;…

(一)PUN 2基本介绍

一、开始 (一)基本简介 1.简介 Photon Unity Networking (PUN) 是一个用于多人游戏的 Unity 包。灵活的配对让您的玩家进入可以通过网络同步对象的房间。 RPC、自定义属性或“低级别”光子事件只是其中的一些功能。快速且&#xff08;可选&#xff09;可靠的通信是通过专用的…

选卡攻略!一分钟教你选择一款好的流量卡!

很多流量卡看似便宜&#xff0c;但用起来套路不少&#xff0c;所以&#xff0c;挑选一款流量卡并不是只看资费&#xff0c;而且要了解它的各个方面&#xff0c;比如&#xff1a;优惠期、合约期等等&#xff0c;今面&#xff0c;小编就带大家一块了解如何选择一款好的流量卡。 …

默认的HuggingFace模型

介绍 在本文中&#xff0c;我将探讨表征学习中常见的一种做法——使用预训练神经网络的冻结状态作为学习特征提取器。 具体而言&#xff0c;我感兴趣的是研究使用这些提取的神经网络特征训练的简单模型的性能与使用迁移学习初始化的微调神经网络的性能的比较。预期受众主要是数…

一款功能强大的多合一聚合支付Discuz插件,可直接替换DiscuzX 3.5自带的支付接口

源码介绍&#xff1a; Discuz论坛多合一聚合支付接口插件&#xff0c;该插件直接替换了自带的支付接口功能&#xff0c; 增强了支付的扩展性&#xff0c;自带支持支付宝、微信、QQ钱包官方支付&#xff0c; 以及彩虹易支付、我爱支付、虎皮椒等支付通道&#xff0c;并且可以…

专家共话:存力一体成“东数西算”全场景利器

从2022年2月17日正式全面启动至今&#xff0c;“东数西算”工程已经度过了一周年。一年多的实践探索证明&#xff0c;激活数据要素&#xff0c;推动算力成为核心生产力&#xff0c;离不开“存力先行”。其中&#xff0c;东西部存力一体化&#xff0c;是支撑“东数西算”全场景应…

「读书感悟系列」友者生存:与人为善的进化力量(我会解释人类善良和暴力的进化原因)...

作者 | gongyouliu 编辑 | gongyouliu ‍ 最近花了不长的时间读完了这本『友者生存&#xff1a;与人为善的进化力量』&#xff0c;由于我对进化生物学非常感兴趣&#xff0c;又有4年的生物学学习背景&#xff0c;读起来还是非常容易的&#xff0c;这本书算是人类进化学的科普读…

tcp cubic 与随机丢包

前面提到过一个 AIMD 的修正方法&#xff0c;“二次机会 MD”&#xff1a;首次丢包只 MD 收缩一个相对较小的比例&#xff0c;再次丢包时再继续收缩&#xff0c;直到 beta * Wmax。 效果如下图&#xff1a; 大意是在检测到丢包时&#xff0c;先 MD 一个相对小的缩放比例&…

DS215KLDCG1AZZ03A如何编写温度比例的代码?

DS215KLDCG1AZZ03A如何编写温度比例的代码&#xff1f; 可编程逻辑控制&#xff0c;简称PLC&#xff0c;由美国机械工程师迪克莫利于1年1968月<>日首次设计。PLC最初是为了减少汽车行业员工的工作量而开发的&#xff0c;从那时起&#xff0c;它们已被用于所有其他恶劣环境…

常用linux多场景查找文件的方法及对比

波哥整理了在linux中根据文件名称查文件&#xff0c;根据文件内容查找文件&#xff0c;根据进程号查找文件的方法及命令详细解释。 一、find命令 find命令可以在指定目录下查找文件&#xff0c;其语法如下&#xff1a; find <目录> <选项> <匹配模式> 选项和…

vue-4:注册组件,组件传参,特殊属性ref $parent $root,透传,内置组件,自定义指令,mixins混入

注册组件&#xff0c;使用组件&#xff08;项目中都是写component中&#xff09; 为什么用组件&#xff1a;组件可以复用&#xff0c;每一个组件都是独立的&#xff0c;模板&#xff0c;数据&#xff0c;css样式互不影响 全局注册组件component&#xff1a;请勿滥用全局组件in…