Centos 7 /local_lim.h:38:26: fatal error: linux/limits.h: No such file or directory

今天在给一台全新的CENTOS 7 编译、部署GITHUB 项目时遇到如下问题:

In file included from /usr/include/bits/posix1_lim.h:160:0,
                 from /usr/include/limits.h:144,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:168,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/syslimits.h:7,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:34,
                 from conftest.c:10:
/usr/include/bits/local_lim.h:38:26: fatal error: linux/limits.h: No such file or directory
 #include <linux/limits.h>
                          ^
compilation terminated.

参考  暴躁程序猿的解决方案 (ubuntu系统),遭遇了一样的问题,因为 /usr/include/linux 目录缺失导致。

 

Centos 7 执行如下命令,问题得以解决:

yum install kernel-headers -y

在编译 uClibc 1.0.31 时出现 `./include/bits/local_lim.h:38:10: fatal error: linux/limits.h: No such file or directory` 错误,通常是由于系统找不到 `linux/limits.h` 文件导致的。以下是一些可能的解决办法: ### 1. 确认 Linux 内核头文件已安装 `linux/limits.h` 是 Linux 内核头文件的一部分,因此需要确保系统已经安装了相应版本的内核头文件。可以通过包管理器来安装,以 Ubuntu 为例: ```bash sudo apt-get install linux-headers-$(uname -r) ``` 对于 CentOS 系统,可以使用以下命令: ```bash sudo yum install kernel-devel ``` ### 2. 指定内核头文件路径 在编译 uClibc 时,可以通过 `CFLAGS` 或 `UCLIBC_EXTRA_DEFINES` 环境变量来指定内核头文件的路径。例如: ```bash make CFLAGS="-I/usr/src/linux-headers-$(uname -r)/include" ``` 或者在 `make` 命令中直接指定: ```bash make UCLIBC_EXTRA_DEFINES="-I/usr/src/linux-headers-$(uname -r)/include" ``` ### 3. 检查内核头文件版本 确保使用的内核头文件版本与系统内核版本兼容。如果版本不匹配,可能会导致找不到某些头文件。可以通过以下命令查看系统内核版本: ```bash uname -r ``` ### 4. 手动复制头文件 如果以上方法都无法解决问题,可以尝试手动复制 `limits.h` 文件到 uClibc 编译所需的目录。首先找到 `limits.h` 文件的位置: ```bash find / -name "limits.h" 2>/dev/null ``` 然后将其复制到 uClibc 所需的目录: ```bash cp /path/to/limits.h /path/to/uClibc/include/linux/ ``` ### 5. 更新 uClibc 配置 有时候,uClibc 的配置文件可能没有正确指定内核头文件的路径。可以通过以下命令重新配置 uClibc: ```bash make menuconfig ``` 在配置界面中,找到与内核头文件相关的选项,确保路径设置正确。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值