치명적인 오류 : sys / cdefs.h : 해당 파일 또는 디렉토리 없음 |


108

Atmega16을 프로그래밍하기 위해 Ubuntu 14.04 LTS에서 Code :: Blocks IDE를 사용하려고 시도한 지 몇 주가 지났지 만 C :: B에서 프로그램을 컴파일 / 빌드하는 동안 다음 오류가 발생했습니다.

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

이 스레드를 읽었 libc6-dev으며 의존성을 제거하여 제거 하려고 시도하고 문제가 발생했습니다. 이전 경험에서 나는 파이프 오류가 발생할 가능성이 크다는 것을 알았습니다. 잃어버린 종속성을 설치하여 문제를 해결했습니다.

이제도 여전히 같은 오류가 있습니다.


답변:


154

amd64 설치중인 경우 패키지 설치를 시도 할 수 있습니다 libc6-dev-i386. 이것은 i8kutils에서 smm 을 컴파일 하는 동안 발생했던 것과 동일한 문제를 해결하는 데 도움이되었습니다 .


9
이것은 매력처럼 작동했습니다. 이것이 정답입니다.
Patryk

14
gcc-multilib 및 g ++-multilib를 설치하는 것이 좋습니다.
RobotHumans

libc6 및 libc6-dev를 설치하면 해결되었습니다. 나는 또한 그것에 대한 참조를 찾았지만 슬프게도 그것을 잃어 버렸습니다.
Mandar

4
libc6-dev-i386은 sudo apt-get install g++-multilibKali 2016.2에서 실행할 경우 추가 패키지 중 하나입니다 .
林果 皞

3
많은 컴파일러 툴체인이 있다면 패키징 버그처럼 보일 것입니다. multilib은 32 및 64 비트 빌더를 제공하지만 충돌을 방지하기 위해 다른 모든 툴 체인을 먼저 제거하는 것과 같은 바보 같은 말을 할 것입니다. 나를 위해 일했지만 arm 용 컴파일러가 없었습니다. 나는 그것을 위해 VM을 사용합니다.
RobotHumans

46

32 및 64 비트 아키텍처 파일로 너무 많이 망쳐 놓은 컴퓨터에서을 설치 하여이 문제를 해결했습니다 g++-multilib.


2

나는 이것이 우분투 중심 지점이라는 것을 알고 있지만이 페이지는 Google 에서이 오류를 검색했을 때 (검색에 -Ubuntu를 넣었을 때조차도) 처음으로 나타 났으므로 Arch에 대한 답변을 공유 할 것입니다 리눅스 여기 :

Arch에서는 패키지 glibc가 손상되어 모든 / usr / include / sys 헤더가 누락되어 / lib / cpp 실패 무결성 검사를 받았습니다. glibc를 다시 작성하여이 오류를 해결했습니다.


5
웃긴, 나는 몇 달 전에이 문제를 해결했으며 완전히 잊어 버렸습니다. 그래서 여기에 다시 해결책을 찾고있었습니다. 이 사이트를 주셔서 감사합니다. :)
thebunnyrules

그 코멘트 : 나는 스택 Exchange의 사이트 전체 전에 시간이 많은 일을했다고 들었습니다
폴 스텔리

2

명령을 입력 :

sudo apt-get --reinstall install libc6 libc6-dev

문제를 해결했다.


1
안녕하세요. askubuntu에 오신 것을 환영합니다! 게시물 형식 을 지정 하려면 askubuntu.com/editing-help 의 지침을 따르 십시오.
abu_bua

Ask Ubuntu에 오신 것을 환영합니다! ;-)편집 내용 을 검토 하고 향후 답변의 가독성을 향상시키기 위해 편집 도움말 을 검토 할 수 있습니까 ? ;-) (CC @abu_bua)
Fabby
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.