严重错误:sys / cdefs.h:没有这样的文件或目录|


108

几周以来,我一直试图在Ubuntu 14.04 LTS上使用Code :: Blocks IDE来编程Atmega16,但是在C :: B中编译/构建程序时遇到以下错误,这使我受阻

/usr/include/features.h|374|fatal error: sys/cdefs.h: No such file or directory|

我已经阅读了该线程, 并据此尝试清除libc6-dev和删除依赖项而遇到麻烦。根据以前的经验,我知道很有可能陷入管道破裂错误。我通过安装丢失的依赖项解决了它。

现在我仍然有同样的错误。


Answers:


154

如果您使用的是amd64安装,则可以尝试安装该软件包libc6-dev-i386。这帮助我解决了您尝试从i8kutils 编译 smm时遇到的相同问题。


9
这就像一个魅力。这应该是公认的答案。
Patryk 2014年

14
最好安装gcc-multilib和g ++-multilib。
RobotHumans

安装libc6和libc6-dev对我来说解决了。我也为此找到了一些参考,但可惜我失去了它。
Mandar,2015年

4
如果我sudo apt-get install g++-multilib在Kali 2016.2中运行,libc6-dev-i386是将要安装的其他软件包之一。
林果皞2016年

3
如果您有许多编译器工具链,那似乎是一个打包错误。multilib可以为您提供32位和64位构建器,但可能会说些愚蠢的事情,例如先删除所有其他工具链以尝试防止冲突。为我工作,但我没有用于arm的编译器。我为此使用VM。
RobotHumans

46

在我的机器上,我可能过多地使用了32位和64位体系结构文件,我通过安装解决了此问题g++-multilib


2

我知道这是一个以Ubuntu为中心的分支,但是此页面是我在Google上搜索此错误时(即使在搜索中输入-Ubuntu时)出现的第一个页面,因此我将与Arch分享我的答案Linux在这里:

在Arch中,我得到了/ lib / cpp失败的健全性检查,因为软件包glibc损坏并且缺少所有/ usr / include / sys标头。我通过重新编译glibc解决了此错误。


5
有趣的是,我几个月前解决了这个问题,但我完全忘记了。所以我在这里再次寻找解决方案。感谢上帝为这个网站。:)
thebunnyrules

该评论:)我听说Stack Exchange中的站点在此之前已经做了很多次了
Paul Stelian,

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.