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コンパイルします。

関連情報