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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM