我在编译内核调度程序以进行测试时遇到了问题。
编译错误
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-genericgcc
gcc --version
gcc-5.real (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010因此,如果这是编译错误的原因--有哪些解决方案可用?例如,我应该更新内核吗?我该如何做呢?还是回到gcc的早期版本?其他建议?
发布于 2016-04-11 09:56:52
任何大于3.18的内核都不会使用gcc 5进行编译。请使用旧的编译器。
发布于 2017-09-14 17:36:57
可以安装gcc-4.9来编译3.xx内核。
但接下来的问题是:“如何切换gcc-4.9的内核编译?”
相反,更简单的答案就在这里 -只需将丢失的文件下载到include/linux文件夹
不幸的是,gcc5根本不喜欢“内联”构造,所以在进行任何编译之前,您必须对所有内核源代码继续使用grep -sRl "extern inline" .|xargs sed -i -e "s/extern inline/inline/g"。
发布于 2016-04-10 16:21:35
您没有内核源代码。编译器正在查找该头文件。
这个链接将为您提供一个内核源代码树的版本,它应该与您正在寻找的内容非常相似。
https://cdn.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.71.tar.xz
https://unix.stackexchange.com/questions/275515
复制相似问题