# 编译构建常è§é—®é¢˜ ## è½»é‡å’Œå°åž‹ç³»ç»Ÿ ### æç¤ºâ€œ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),下载安装包。  å°†æºç 放置在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软链接  - **解决办法** 请è¿è¡Œä»¥ä¸‹å‘½ä»¤æ·»åŠ è½¯é“¾æŽ¥ï¼š ``` # cd /usr/bin/ # which python3 # ln -s /usr/local/bin/python3 python # python --version ``` 例:  ### æç¤ºæ‰¾ä¸åˆ°â€œpython3†- **现象æè¿°**  - **å¯èƒ½åŽŸå› ** 没有装python3。 - **解决办法** 请使用如下命令安装Python3。 ``` sudo apt-get install python3.8 ```