Linux/compiler-gcc5.h: 해당 파일이나 디렉터리가 없습니다.

Linux/compiler-gcc5.h: 해당 파일이나 디렉터리가 없습니다.

테스트를 위해 커널 스케줄러를 컴파일하는 데 문제가 있습니다.

컴파일 오류

 linux-2.6.32-rc3/include/linux/compiler-gcc.h:86:30: fatal error: linux/compiler-gcc5.h: No such file or directory

커널이 너무 오래되었기 때문에 이 오류가 발생하는 건가요?

핵심

uname -r

4.1.0-3-generic

걸프 협력 협의회

gcc --version

gcc-5.real (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010

그렇다면 이것이 컴파일 오류의 원인이라면 어떤 해결 방법을 사용할 수 있습니까? 예를 들어 커널을 업데이트해야 합니까? 어떻게 해야 합니까? 아니면 이전 버전의 gcc로 돌아가시겠습니까? 다른 제안?

답변1

3.18 이전 커널은 gcc 5로 컴파일할 수 없습니다. 이전 컴파일러를 사용하십시오.

답변2

3.xx 커널을 컴파일하기 위해 gcc-4.9를 설치할 수 있습니다.

하지만 다음 질문은 "커널 컴파일을 위해 gcc-4.9로 전환하는 방법은 무엇입니까?"

대신에,더 간단한 대답은 여기에 있습니다- 손실된 파일을 include/linux폴더에 다운로드하기만 하면 됩니다.

불행하게도 gcc5는 "를 좋아하지 않습니다외부 인라인grep -sRl "extern inline" .|xargs sed -i -e "s/extern inline/inline/g"" 전체 빌드이므로 컴파일을 진행하기 전에 모든 커널 소스를 진행해야 합니다.

답변3

커널 소스 코드가 없습니다. 컴파일러는 이 헤더 파일을 찾고 있습니다.

이 링크는 당신이 찾고 있는 것과 대략 유사한 커널 소스 트리 버전을 제공합니다.

https://cdn.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.71.tar.xz

답변4

간단히 말해서, 이전 버전의 GCC를 구하고 make CC=gcc-4.9커널 디렉토리에 있는 gcc 버전으로 4.9컴파일하십시오 .

관련 정보