Firefly ROC-Rk3399-PC Android 8.1 源码编译问题解决

Firefly ROC-Rk3399-PC Android 8.1 源码编译问题解决

从淘宝购买了一块Firefly 的ROC-Rk3399-PC 的板子,下载了他们提供的Android 8.1源码,不知是因为我用的是Ubuntu 22.04(官方教程里是18.04)的原因还是一些软件版本更新导致(已知gcc的版本太新就会出现一个问题,但是问题报错我没有记录下来,接下来的第一个步骤就是解决这个问题),查了几天资料,终于编译成功了,做一下记录,也为同样需要编译这个部分源码的同学提供一点思路,若有同学发现并解决了文中没有提到的问题可以通过邮箱将解决方案发给我2324236464@qq.com,同时请附上你的博客链接,万分感谢。

1. Kernel multiple definition of yylloc。

参照# Ubuntu21.10 编译uboot 出错 `yylloc’解决方法

修改kernel/scripts/dtc/dtc-lexer.l文件的第41行,在前面添加extern关键字

extern YYLTYPE yylloc;

参考 https://huaweicloud.csdn.net/63566bedd3efff3090b5f1f6.html

修改scripts/dtc目录下的dtc-lexer.lex.c_shipped文件中找到
YYLTYPE yyloc这一行,在640行,在之前面加上extern 
保存退出,
make 编译 
正常编译

2. 提示UTF-8不能加载字符之类的

这类问题需要打开这个文件将这些字符删掉,我遇到的是packages/apps/Camera2/src/com/android/camera/ui/ModelListView.java文件下的

3. 提示Jack-server 无法启动

试了很多方案都不行,只能将编译时jack-server关掉

修改FFTools/make.sh的第75行,在make命令后添加 ANDROID_FORCE_JACK_ENABLED=disabled参数

make -j $MAKE_THREAD ANDROID_FORCE_JACK_ENABLED=disabled

4. flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? ‘cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))’ ???

参照flex-2.5.39: loadlocale.c:130: _nl_intern_locale_data: Assertion – 小固件

~/.bashrc添加export LC_ALL=C

或执行以下命令:

export LC_ALL=C

注意:执行该命令只在当前终端有效

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值