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

可以安装 gcc-4.9 来编译 3.xx 内核。

但接下来的问题是:“如何切换到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在内核目录中使用4.9gcc 版本进行编译。

相关内容