【发布时间】:2015-09-11 18:53:05
【问题描述】:
(回答了类似的问题,但没有一个真正适用于此)
我有一块采用 Fedora 20 和 armv71 架构(32 位)的开发板。我已经通过 yum 安装了所有需要的 gcc 库,例如 gcc、g++、cmake、glibc、glibc-devel 等(glibc-devel 相当于 Fedora 中的 libc6-dev-i386)。
我正在尝试编译一个 C 项目,该项目在 MAC OS 64 位和 Ubuntu 64 位上编译得很好,但在我运行 Fedora 20 时出现以下错误 make:
/usr/include/features.h:364:25: fatal error: sys/cdefs.h: No such file or directory
# include <sys/cdefs.h>
当我检查/usr/include/sys 文件夹时,它是空的并且cdefs.h 文件在系统上的任何地方都不存在。
问题似乎是我缺少一个包(可能?),但由于我似乎已经全部安装,所以无法确定缺少哪个包。或者 32 位 C 编译器由于特定原因缺少该文件?任何帮助将不胜感激。
【问题讨论】:
-
"Running
make" 可以有效地做任何事情。您需要显示编译器调用命令。这通常隐藏在规则中,行首带有@符号。只需删除@即可查看实际情况。 -
查看此线程:askubuntu.com/questions/470796/…。基本上你只需要安装 libc6-dev-i386
-
我见过那个线程,但是在 Fedora 中相当于 libc6-dev-i386 的是 glibc-devel,检查这个线程:superuser.com/questions/491504/… 但是,我的系统中安装了 glibc 和 glibc-devel (也更新了问题)
-
在我的 Fedora 22 上
/usr/include/sys/cdefs.h由包glibc-headers提供。 -
glibc-headers也安装了这个版本:glibc-headers-2.18-19.fc20.armv7hl