# 编译构建常见问题 ## 轻量和小型系统 ### 提示“usr/sbin/ninja: invalid option -- w” - **现象描述:** 编译失败,提示“usr/sbin/ninja: invalid option -- w”。 - **可能原因:** 编译环境中ninja版本太低,不支持--w选项。 - **解决办法:** 卸载环境中ninja和gn,按照[获取工具](../get-code/gettools-ide.md)。 ### 提示“/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.7以上版本,然后安装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 ``` ### 提示“Could not find a version that satisfies the requirement six>=1.9.0” - **现象描述** 编译构建过程中出现以下错误: ``` Could not find a version that satisfies the requirement six>=1.9.0 ``` - **可能原因** 环境中未安装合适的“six”。 - **解决办法** 方法1:通过命令“pip3 install six”,在线安装。 方法2:离线安装。 通过网页[https://pypi.org/project/six/#files](https://pypi.org/project/six/#files),下载安装包。 ![zh-cn_image_0000001251276115](figures/zh-cn_image_0000001251276115.png) 将源码放置在Linux服务器中,并安装“pip3 install six-1.14.0-py2.py3-none-any.whl”。 完成上述安装后,重新构建。 ### 提示找不到“-lgcc” - **现象描述** 编译构建过程中出现以下错误: ``` riscv32-unknown-elf-ld: cannot find -lgcc ``` - **可能原因** 交叉编译器gcc_riscv32的PATH添加错误,如下,在"bin"后多添加了一个“/”,应该删除。 ``` ~/gcc_riscv32/bin/:/data/toolchain/ ``` - **解决办法** 重新修改gcc_riscv32的PATH,将多余的“/”删除。 ``` ~/gcc_riscv32/bin:/data/toolchain/ ``` ### 提示找不到“python” - **现象描述** 编译构建过程中出现以下错误: ``` -bash: /usr/bin/python: No such file or directory ``` - **可能原因**1 没有装python。 - **解决办法** 请使用如下命令安装Python,下方以Python3.8为例。 ``` sudo apt-get install python3.8 ``` - **可能原因2** usr/bin目录下没有python软链接 ![zh-cn_image_0000001243200677](figures/zh-cn_image_0000001243200677.png) - **解决办法** 请运行以下命令添加软链接: ``` # cd /usr/bin/ # which python3 # ln -s /usr/local/bin/python3 python # python --version ``` 例: ![zh-cn_image_0000001243320787](figures/zh-cn_image_0000001243320787.png) ### 提示找不到“python3” - **现象描述** ![zh-cn_image_0000001251276255](figures/zh-cn_image_0000001251276255.png) - **可能原因** 没有装python3。 - **解决办法** 请使用如下命令安装Python3。 ``` sudo apt-get install python3.8 ```