鸿蒙OpenHarmony:【常见编译问题和解决方法】

常见问题

常见编译问题和解决方法

鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

提示“usr/sbin/ninja: invalid option -- w”

  • 现象描述:  编译失败,提示“usr/sbin/ninja: invalid option -- w”。
  • 可能原因:  编译环境中ninja版本太低,不支持--w选项。
  • 解决办法:  卸载环境中ninja和gn,按照[获取工具]。

提示“/usr/bin/ld: cannot find -lncurses”

  • 现象描述:  编译失败,提示“/usr/bin/ld: cannot find -lncurses”。
  • 可能原因:  编译环境ncurses库缺失。
  • 解决办法:

    sudo apt-get install lib32ncurses5-dev

提示“line 77: mcopy: command not found”

  • 现象描述:  编译失败,提示“line 77: mcopy: command not found”。
  • 可能原因:  编译环境未安装mcopy。
  • 解决办法:

    sudo apt-get install dosfstools mtools

提示“riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory”

  • 现象描述:  编译失败,提示“riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory”。
  • 可能原因:  当前用户对riscv编译器路径下的文件访问权限不够。
  • 解决办法:  查询gcc_riscv32所在目录。

    which riscv32-unknown-elf-gcc

    使用chmod命令修改目录权限为755。

提示“No module named 'Crypto'”

  • 现象描述:  编译失败,提示“No module named 'Crypto'”。
  • 可能原因:  python3未安装Crypto。
  • 解决办法:

    1. 查询Python版本号。

      python3 --version
    2. 需使用python3.9.2以上版本,然后安装pycryptodome。

      sudo pip3 install pycryptodome

提示“xx.sh : xx unexpected operator”

  • 现象描述:  编译失败:“xx.sh [: xx unexpected operator”。
  • 可能原因:  编译环境shell不是bash。
  • 解决办法:

    sudo rm -rf /bin/sh
    sudo ln -s /bin/bash /bin/sh

提示“some services are not authenticated. Listed as follow”

  • 现象描述:  编译失败:“some services are not authenticated. Listed as follow”。
  • 可能原因:  报错中列举出来的进程.cfg配置文件中,定义了uid为root或system,而该进程并不在产品定义的高权限进程允许范围内。
  • 解决办法:

    1. 降低进程的权限等级。修改.cfg配置文件中的uid定义,非必需的场景下,不要定义uid为root或system。

      如果由于实现业务功能需要,进程必须要有root或system权限,只有在联系安全专家评审,通过安全审视后,方可修改产品的高权限进程管控列表,配置文件路径为"vendor/{公司名称}/{产品名称}/security_config/high_privilege_process_list.json"。

      示例:rk3586的高权限进程配置文件位于//vendor/hihope/rk3568/security_config/high_privilege_process_list.json

提示“Error: some services do not match with critical whitelist”

  • 现象描述:  编译失败:“Error: some services do not match with critical whitelist”。
  • 可能原因:  报错中列举出来的进程.cfg配置文件中,定义并使能了critical字段,而该进程未被允许添加critical字段,或该字段配置与白名单中不符。
  • 解决办法:

    移除进程的critical字段或把critical字段第一位置0。修改原服务.cfg配置文件中的critical字段,非必需的场景下,不要使能critical字段。

    关于critical字段的详细使用方法,请参考服务配置。如果由于实现业务功能需要,进程必须要使能critical字段,只有在联系安全专家评审,通过安全审视后,方可修改产品的critical_reboot进程管控白名单//vendor/{公司名称}/{产品名称}/security_config/critical_reboot_process_list.json

    示例:rk3586的critical_reboot进程管控白名单为//vendor/hihope/rk3568/security_config/critical_reboot_process_list.json

鸿蒙开发岗位需要掌握那些核心要领?

目前还有很多小伙伴不知道要学习哪些鸿蒙技术?不知道重点掌握哪些?为了避免学习时频繁踩坑,最终浪费大量时间的。

自己学习时必须要有一份实用的鸿蒙(Harmony NEXT)资料非常有必要。 这里我推荐,根据鸿蒙开发官网梳理与华为内部人员的分享总结出的开发文档。内容包含了:【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。

废话就不多说了,接下来好好看下这份资料。

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习鸿蒙OpenHarmony知识←前往。下面是鸿蒙开发的学习路线图。

针对鸿蒙成长路线打造的鸿蒙学习文档。鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

其中内容包含:

《鸿蒙开发基础》鸿蒙OpenHarmony知识←前往

  1. ArkTS语言
  2. 安装DevEco Studio
  3. 运用你的第一个ArkTS应用
  4. ArkUI声明式UI开发
  5. .……

《鸿蒙开发进阶》鸿蒙OpenHarmony知识←前往

  1. Stage模型入门
  2. 网络管理
  3. 数据管理
  4. 电话服务
  5. 分布式应用开发
  6. 通知与窗口管理
  7. 多媒体技术
  8. 安全技能
  9. 任务管理
  10. WebGL
  11. 国际化开发
  12. 应用测试
  13. DFX面向未来设计
  14. 鸿蒙系统移植和裁剪定制
  15. ……

《鸿蒙开发实战》鸿蒙OpenHarmony知识←前往

  1. ArkTS实践
  2. UIAbility应用
  3. 网络案例
  4. ……

最后

鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值