1# 编译构建常见问题 2 3 4## 轻量和小型系统 5 6 7### 提示“usr/sbin/ninja: invalid option -- w” 8 9- **现象描述:** 10 11 编译失败,提示“usr/sbin/ninja: invalid option -- w”。 12 13- **可能原因:** 14 15 编译环境中ninja版本太低,不支持--w选项。 16 17- **解决办法:** 18 19 卸载环境中ninja和gn,按照[获取工具](../get-code/gettools-ide.md)。 20 21 22### 提示“/usr/bin/ld: cannot find -lncurses” 23 24- **现象描述:** 25 26 编译失败,提示“/usr/bin/ld: cannot find -lncurses”。 27 28- **可能原因:** 29 30 编译环境ncurses库缺失。 31 32- **解决办法:** 33 34 ``` 35 sudo apt-get install lib32ncurses5-dev 36 ``` 37 38 39### 提示“line 77: mcopy: command not found” 40 41- **现象描述:** 42 43 编译失败,提示“line 77: mcopy: command not found”。 44 45- **可能原因:** 46 47 编译环境未安装mcopy。 48 49- **解决办法:** 50 51 ``` 52 sudo apt-get install dosfstools mtools 53 ``` 54 55 56### 提示“riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory” 57 58- **现象描述:** 59 60 编译失败,提示“riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory”。 61 62- **可能原因:** 63 64 当前用户对riscv编译器路径下的文件访问权限不够。 65 66- **解决办法:** 67 68 查询gcc_riscv32所在目录。 69 70 ``` 71 which riscv32-unknown-elf-gcc 72 ``` 73 74 使用chmod命令修改目录权限为755。 75 76 77### 提示“No module named 'Crypto'” 78 79- **现象描述:** 80 81 编译失败,提示“No module named 'Crypto'”。 82 83- **可能原因:** 84 85 python3未安装Crypto。 86 87- **解决办法:** 88 89 1. 查询Python版本号。 90 91 ``` 92 python3 --version 93 ``` 94 2. 需使用python3.7以上版本,然后安装pycryptodome。 95 96 ``` 97 sudo pip3 install pycryptodome 98 ``` 99 100 101### 提示“xx.sh : xx unexpected operator” 102 103- **现象描述:** 104 105 编译失败:“xx.sh [: xx unexpected operator”。 106 107- **可能原因:** 108 109 编译环境shell不是bash。 110 111- **解决办法:** 112 113 ``` 114 sudo rm -rf /bin/sh 115 sudo ln -s /bin/bash /bin/sh 116 ``` 117 118 119### 提示“Could not find a version that satisfies the requirement six>=1.9.0” 120 121- **现象描述** 122 123 编译构建过程中出现以下错误: 124 125 126 ``` 127 Could not find a version that satisfies the requirement six>=1.9.0 128 ``` 129 130- **可能原因** 131 132 环境中未安装合适的“six”。 133 134- **解决办法** 135 136 方法1:通过命令“pip3 install six”,在线安装。 137 138 方法2:离线安装。 139 140 通过网页[https://pypi.org/project/six/#files](https://pypi.org/project/six/#files),下载安装包。 141 142 ![zh-cn_image_0000001251276115](figures/zh-cn_image_0000001251276115.png) 143 144 将源码放置在Linux服务器中,并安装“pip3 install six-1.14.0-py2.py3-none-any.whl”。 145 146 完成上述安装后,重新构建。 147 148 149### 提示找不到“-lgcc” 150 151- **现象描述** 152 153 编译构建过程中出现以下错误: 154 155 156 ``` 157 riscv32-unknown-elf-ld: cannot find -lgcc 158 ``` 159 160- **可能原因** 161 162 交叉编译器gcc_riscv32的PATH添加错误,如下,在"bin"后多添加了一个“/”,应该删除。 163 164 165 ``` 166 ~/gcc_riscv32/bin/:/data/toolchain/ 167 ``` 168 169- **解决办法** 170 171 重新修改gcc_riscv32的PATH,将多余的“/”删除。 172 173 174 ``` 175 ~/gcc_riscv32/bin:/data/toolchain/ 176 ``` 177 178 179### 提示找不到“python” 180 181- **现象描述** 182 183 编译构建过程中出现以下错误: 184 185 186 ``` 187 -bash: /usr/bin/python: No such file or directory 188 ``` 189 190- **可能原因**1 191 192 没有装python。 193 194- **解决办法** 195 196 请使用如下命令安装Python,下方以Python3.8为例。 197 198 199 ``` 200 sudo apt-get install python3.8 201 ``` 202 203- **可能原因2** 204 205 usr/bin目录下没有python软链接 206 207 ![zh-cn_image_0000001243200677](figures/zh-cn_image_0000001243200677.png) 208 209- **解决办法** 210 211 请运行以下命令添加软链接: 212 213 214 ``` 215 # cd /usr/bin/ 216 # which python3 217 # ln -s /usr/local/bin/python3 python 218 # python --version 219 ``` 220 221 例: 222 223 ![zh-cn_image_0000001243320787](figures/zh-cn_image_0000001243320787.png) 224 225 226### 提示找不到“python3” 227 228- **现象描述** 229 230 ![zh-cn_image_0000001251276255](figures/zh-cn_image_0000001251276255.png) 231 232- **可能原因** 233 234 没有装python3。 235 236- **解决办法** 237 238 请使用如下命令安装Python3。 239 240 241 ``` 242 sudo apt-get install python3.8 243 ``` 244