编译内核时出现fatal error: linux/compiler-gcc7.h: No such file or directory(已解决)
##linux内核编译时出错
最近编译linux内核时出现了问题,网上找了好多办法都没解决,最后才找到一个比较好一点的方法。
网上的方法大多数都是把/usr/src/… linux内核中的compile-gcc.h加入到需要编译的内核的位置。然并卵,又出现了新的错误,还是没解决。
解决办法:因为网上没有gcc7.h文件,所以我直接更改了编译器的版本,改成 gcc-4.7-arm-linux-gnueabi,然后编译就能通过了。
输入命令如下:
先卸载gcc7:
sudo apt-get remove gcc-arm-linux-gnueabi
清理剩余数据:
sudo apt autoremove
安装gcc4.7:
sudo apt-get install gcc-4.7-arm-linux-gnueabi
安装好交叉编译链后还需要做如下处理,即创建链接(为什么创建,可以了解下编译脚本):
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-4.7 /usr/bin/arm-linux-gnueabi-gcc
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-ar-4.7 /usr/bin/arm-linux-gnueabi-gcc-ar
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-nm-4.7 /usr/bin/arm-linux-gnueabi-gcc-nm
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-ranlib-4.7 /usr/bin/arm-linux-gnueabi-gcc-ranlib
sudo ln -s /usr/bin/arm-linux-gnueabi-cpp-4.7 /usr/bin/arm-linux-gnueabi-cpp
sudo ln -s /usr/bin/arm-linux-gnueabi-gcov-4.7 /usr/bin/arm-linux-gnueabi-gcov
即把所有尾部有4.7版本号的链接为没有的。
之后就能编译了,下面是我编译成功的结果:
参考文章:
编译linux3.16内核心得
https://www.it610.com/article/3640798.htm
安装quemhttps://jingyan.baidu.com/article/f00622281253e8fbd3f0c814.html