Linux内核编译报错的解决办法

1.错误zlib.h

compress.c:14:58: fatal error: zlib.h: No such file or directory
compilation terminated.
解决:sudo apt-get install zlib1g-dev

2.错误bison
make[2]: bison: Command not found
解决:sudo apt-get install bison

3.错误flex
/bin/sh: flex: not found
make[2]: *** [lib/conf-lex.c] Error 127
解决:sudo apt-get install flex

4.错误
lib/libsensors.so: undefined reference to sensors_yylex
lib/libsensors.so: undefined reference to sensors_yyin
lib/libsensors.so: undefined reference to sensors_lex_error
lib/libsensors.so: undefined reference to sensors_yylineno
collect2: ld returned 1 exit status
make[2]: *** [prog/sensors/sensors] Error 1
解决:After installing flex and/or bison, you‘ll need to ‘make clean‘ before ‘make user‘ will work properly.(安装flex或者bison之后,需要先make clean一下)

5.错误gmake
/bin/sh: gmake: not found
make[3]: *** [clean] Error 1
原因:在ubuntu中已经取消掉了gmake,都用make代替。
解决: sudo ln -s /usr/bin/make /usr/bin/gmake

6.错误
(cd basis/build/linux-am34-bluraypan; sh build_me.sh -c -b -j -L lex)
[: 133: unexpected operator
[: 133: unexpected operator
Error: DirectFB path point to an invalid path
Hint: you can set DirectFB path by:

  1. setenv MEI2_TOOLCHAIN_JAVA_DIR your_directfb_path
  2. use -D build switch, type build_me.sh -h for help
    make[4]: [clean] Error 1
    解决:$ sudo dpkg-reconfigure dash(可见dash的说明文)
    选择[NO]

7.错误
Sequence (?<…) not recognized in regex; marked by <– HERE in m//+|(?<\ <– HERE !/)$/ at -e line 1.
解决:perl版本差别引起的异常message,降级perl版本至5.8.9

8.错误XftConfigLexDone
xftlex.l: In function XftConfigLexDone‘: xftlex.l:274: XftConfig_current_buffer‘ undeclared (first use in this function)
解决:
flex包版本不匹配.降级到2.5.4后,make clean后,编译通过.

9.错误libext2fs.info
make[5]: makeinfo: Command not found
make[5]: *** [libext2fs.info] Error 127
解决:$ sudo apt-get install texinfo

10.错误gawk
/bin/sh: line 1: gawk: command not found
make[6]: *** [stamp-gtktypebuiltins.h] Error 127
解决:$ sudo apt-get install gawk

11.错误indent
/bin/sh: line 2: indent: command not found
make[6]: *** [stamp-gtkmarshal.h] Error 127
解决:$ sudo apt-get install indent

12 错误: openssl/bio.h
“error : openssl/bio.h :No such file or folder
解决方法:sudo apt-get install libssl-dev

13 错误: code model kernel does not support PIC mode
在进行make oldconfig时出现,code model kernel does not support PIC mode的错误
解决方法如下:
在源码的根目录下的Makefile中的KBUILD_CFLAGS中添加一个编译选项

14 编译linux内核出现”linux/compiler-gcc7.h: No such file or directory”
解决方法如下
https://blog.csdn.net/ysheng76/article/details/104943794

15 重启之后开机出现错误如下:
[Linux] end Kernel panic – not syncing: System is deadlocked on memory错误
解决方法:在虚拟机选项中将内存改大一些,我这边直接改成3GB了,然后再重启

总结:
1.一般出现”NO such file or directory”之类的报错,先看报错缺的是什么,然后再网上搜索对应的包是什么,使用sudo apt-get install X安装该包
2.建议不要使用太旧的linux内核版本,因为现在的交叉编译环境也再不断更新,使用太老旧的内核有时候会报一些奇奇怪怪的错误

参考文章:

  1. https://www.cnblogs.com/gavin-world/p/11169282.html
  2. https://blog.csdn.net/ysheng76/article/details/104943794

Linux内核编译报错的解决办法

原文地址:https://www.cnblogs.com/y-c-y/p/14140714.html

系统相关
我还没有学会写个人说明!
上一篇

PS5首发前四周销量330万台 创造游戏主机销售记录

下一篇

使用supervisor守护freeswitch进程

你也可能喜欢

评论已经被关闭。

插入图片