在VMware ubuntu 22.04中编译百问网 imx6ull 的Buildroot中遇见情况

参考文章:
1. buildroot编译常见错误
2. multiple definition of `yylloc‘
3. 韦东山Linux Study2(编译bootloader,内核,buildroot)
4. Ubuntu 22.04 Server 网络配置

这里编译百问网imx6ull开发板时的Buildroot时遇见的题(升级了ubuntu 到22.04后就出现了这些问题),目前感受来说是要多使用VM 的快照

1. c-stack.c:55:26: error: missing binary operator before token “(”

详情查看参考文章1
来自参考文章1,csdn网友:茹茹呀

2. 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)

详情查看参考文章1
来自参考文章1,csdn网友:茹茹呀

3. ‘cmake_root’: temp_parser.get_cmake_var(‘MESON_CMAKE_ROOT’)[0],

File "/home/yang/WorkSpace/WDS/imx6ullpro/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host/lib/python3.8/site-packages/mesonbuild/interpreter.py", line 3281, in dependency_impl
    dep = dependencies.find_external_dependency(name, self.environment, kwargs)
  File "/home/yang/WorkSpace/WDS/imx6ullpro/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host/lib/python3.8/site-packages/mesonbuild/dependencies/base.py", line 2237, in find_external_dependency
    d = c()
  File "/home/yang/WorkSpace/WDS/imx6ullpro/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host/lib/python3.8/site-packages/mesonbuild/dependencies/base.py", line 1111, in __init__
    CMakeDependency.class_cmakeinfo[self.for_machine] = self._get_cmake_info()
  File "/home/yang/WorkSpace/WDS/imx6ullpro/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host/lib/python3.8/site-packages/mesonbuild/dependencies/base.py", line 1204, in _get_cmake_info
    'cmake_root': temp_parser.get_cmake_var('MESON_CMAKE_ROOT')[0],
IndexError: list index out of range 

这里make all -j4 | grep **** -Rn 我使用重定向后,似乎跳过了;(这边不复现了)

4. is not a member numeric_limits

在报错的文件中添加 #include <limits> 头文件

这里出现最多的是缺少std::numeric_limitss的, 用grep numeric_limits -Rn 搜索当前项目中有哪些文件使用了相关的宏,然后看看该哪些文件没有报错,找出为什么没有报错
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. kernel报错: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc’; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here

在这里插入图片描述

在scripts/dtc/ 目录下grep "yylloc" * -Rn ,找到变量定义 再查找 grep "YYLTYPE yylloc" * -Rn 找到具体文件,将multiple的前面添加 extern 关键字
在这里插入图片描述

6. multiple definition of ‘isize’

在这里插入图片描述
这里搜索 isize , 发现定义在armemu.c文件1145中,这里由于armemu26.o 和 armemu32.o 都使用 armemu.c ,归档为libsim.a被使用时,链接的时候,报重定义错误;这里将ARMword返回值类型写入具体函数,isize 定义放在A或者B即可;
在这里插入图片描述
补充:

ARMword isize;

ARMword
#ifdef MODE32
ARMul_Emulate32 (ARMul_State * state)
#else
ARMul_Emulate26 (ARMul_State * state)
#endif
改成如下:

#ifdef MODE32
ARMword isize;
ARMword ARMul_Emulate32 (ARMul_State * state)
#else
ARMword isize;
ARMword ARMul_Emulate26 (ARMul_State * state)
#endif

7. 一些系统依赖安装 以及编译器不支持

这里一些情况占时不处理了,跳过相关的编译;(详情参考文章3的error5 的第二小段)

7.1

在这里插入图片描述去掉两个勾选;在这里插入图片描述

7.2 – Performing Test C_HAS_MFPU_NEON - Failed

不知道怎么解决,看到opencv3 相关的,我把onpencv3相关的在.config注释掉了(make menuconfig 好难找)
在这里插入图片描述

8. Operation not permitted

使用sudo make *** 或者 chmod 777 * -R 后 再make

突然不能上网了

Ubuntu 22.04 Server 网络配置

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刀法孜然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值