• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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`*