一、Linux内核编译出现以下错误
/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x50): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [scripts/Makefile.host:100:scripts/dtc/dtc] 错误 1
make[1]: *** [scripts/Makefile.build:403:scripts/dtc] 错误 2
make[1]: *** 正在等待未完成的任务....
HOSTLD scripts/mod/modpost
make: *** [Makefile:558:scripts] 错误 2
make: *** 正在等待未完成的任务....
二、错误可能原因
gcc版本问题
三、解决办法
1、在该路径(.../scripts/dtc)下找到dtc-lexer.lex.c_shipped文件;
![](https://img-blog.csdnimg.cn/img_convert/99f9eeb8e9d749bab1bcd519f201d1b9.png)
2、在该处(YYLTYPE yylloc)前面添加extern,保存并重新编译。
![](https://img-blog.csdnimg.cn/img_convert/8102f8f2abff4bb08a93e67e78980899.png)