欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > Linux 安装交叉编译器后丢失 `<asm/errno.h>` 的问题及解决方案

Linux 安装交叉编译器后丢失 `<asm/errno.h>` 的问题及解决方案

2025/5/9 2:56:56 来源:https://blog.csdn.net/weixin_41004518/article/details/147759594  浏览:    关键词:Linux 安装交叉编译器后丢失 `<asm/errno.h>` 的问题及解决方案

前言

在 Linux (Ubuntu等)环境下安装某些软件或开发环境时,我们可能会意外地引入交叉编译工具链,尤其是用于 ARM 架构的交叉编译器,比如 gcc-arm-linux-gnueabi 等。而这种行为会修改系统原有的开发环境,甚至导致无法编译原生程序。本文记录一次在 Ubuntu 18.04 上编译 C 程序时遇到 fatal error: asm/errno.h: No such file or directory 的报错,并给出详细排查和恢复步骤。


❗ 问题描述

在执行 make 或使用 gcc 编译一个看似正常的程序时,报出如下错误:

/usr/include/linux/errno.h:1:10: fatal error: asm/errno.h: No such file or directory#include <asm/errno.h>^~~~~~~~~~~~~
compilation terminated.

这意味着系统在 /usr/include/ 路径下未能找到 asm/errno.h,而这个头文件是 Linux 内核用户空间 API 中的一部分,通常是符号链接或文件指向实际的内核头路径。

系统上查看这个 ‘asm/errno.h’ 文件是存在的,就是指引 .h 头文件是有问题的。


⚙️ 这些头文件到底来自哪?

在 Linux 系统中,/usr/include/asm 并不是实际目录,而是一个符号链接,通常指向 asm-generic 或特定架构的头文件。例如:

/usr/include/asm -> asm-generic/

其中:

  • asm/errno.h 是一个与架构相关的头文件,一般在安装 linux-libc-d

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词