当时为了方便,在ubuntu18.04编译的sdk,为了业务需要挪到公司的服务器上编译,却出现了错误。写在这里记录一下。。。
第一个报错:
这个报错是由于m4的版本太低,我当时版本是1.4.18,需要升级到1.4.19,这里挂一下1.4.19版本的包
https://github.com/buildroot/buildroot/tree/master/package/m4
替换路径是buildroot/package/m4,将两个patch删掉,并且替换m4.hash和m4.mk文件,然后cd到sdk目录下 make host-m4 安装
第二个报错:
usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of 'yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
这个报错是内核版本问题,这里参考一下别人的解决方法
https://blog.youkuaiyun.com/xiandang8023/article/details/124750391
我个人是用第一种方法解决,第二种没有解决,修改路径RV1126/RV1126_RV1109_SDK_2.3.2/kernel/scripts/dtc/dtc-lexer.lex.c
第三个错误:
libfakeroot.c: In function ‘chown’:
libfakeroot.c:99:40: error: ‘_STAT_VER’ undeclared (first use in this function)
99 | #define INT_NEXT_STAT(a,b) NEXT_STAT64(_STAT_VER,a,b)
主要是fakeroot版本不对,补丁被修改了
参考别人的修改方案
imx6ull 根文件系统编译报错libfakeroot.c:99:40: error: ‘_STAT_VER 问题解决_hikhhbro的博客-优快云博客
下载,解压,替换buildroot/package/fakeroot文件夹,整个文件夹替换!再编译。。。