1# 常见问题 2 3## 常见编译问题和解决方法 4 5### 提示“usr/sbin/ninja: invalid option -- w” 6 7- **现象描述:** 编译失败,提示“usr/sbin/ninja: invalid option -- w”。 8 9- **可能原因:** 编译环境中ninja版本太低,不支持--w选项。 10 11- **解决办法:** 卸载环境中ninja和gn,按照[获取工具](../../device-dev/get-code/gettools-ide.md)。 12 13### 提示“/usr/bin/ld: cannot find -lncurses” 14 15- **现象描述:** 编译失败,提示“/usr/bin/ld: cannot find -lncurses”。 16 17- **可能原因:** 编译环境ncurses库缺失。 18 19- **解决办法:** 20 21 ```shell 22 sudo apt-get install lib32ncurses5-dev 23 ``` 24 25### 提示“line 77: mcopy: command not found” 26 27- **现象描述:** 编译失败,提示“line 77: mcopy: command not found”。 28 29- **可能原因:** 编译环境未安装mcopy。 30 31- **解决办法:** 32 33 ```shell 34 sudo apt-get install dosfstools mtools 35 ``` 36 37### 提示“riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory” 38 39- **现象描述:** 编译失败,提示“riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory”。 40 41- **可能原因:** 当前用户对riscv编译器路径下的文件访问权限不够。 42 43- **解决办法:** 查询gcc_riscv32所在目录。 44 45 ```shell 46 which riscv32-unknown-elf-gcc 47 ``` 48 49 使用chmod命令修改目录权限为755。 50 51### 提示“No module named 'Crypto'” 52 53- **现象描述:** 编译失败,提示“No module named 'Crypto'”。 54 55- **可能原因:** python3未安装Crypto。 56 57- **解决办法:** 58 59 1. 查询Python版本号。 60 61 ```shell 62 python3 --version 63 ``` 64 65 2. 需使用python3.9.2以上版本,然后安装pycryptodome。 66 67 ```shell 68 sudo pip3 install pycryptodome 69 ``` 70 71### 提示“xx.sh : xx unexpected operator” 72 73- **现象描述:** 编译失败:“xx.sh [: xx unexpected operator”。 74 75- **可能原因:** 编译环境shell不是bash。 76 77- **解决办法:** 78 79 ```shell 80 sudo rm -rf /bin/sh 81 sudo ln -s /bin/bash /bin/sh 82 ``` 83 84 85### 提示“some services are not authenticated. Listed as follow” 86 87- **现象描述:** 编译失败:“some services are not authenticated. Listed as follow”。 88 89- **可能原因:** 报错中列举出来的进程.cfg配置文件中,定义了uid为root或system,而该进程并不在产品定义的高权限进程允许范围内。 90 91- **解决办法:** 92 93 1. 降低进程的权限等级。修改.cfg配置文件中的uid定义,非必需的场景下,不要定义uid为root或system。 94 95 *如果由于实现业务功能需要,进程必须要有root或system权限,只有在联系安全专家评审,通过安全审视后,方可修改产品的高权限进程管控列表,配置文件路径为"`vendor/{公司名称}/{产品名称}/security_config/high_privilege_process_list.json`"。* 96 97 *示例:rk3586的高权限进程配置文件位于`//vendor/hihope/rk3568/security_config/high_privilege_process_list.json`*