# 环境搭建

## 1.按照《星闪实验指导手册》搭建windows环境结果是无法正常编译的（**注意：用户名不包含中文路径，如果包含中文路径请参考[HiSpark Studio工具下载及安装](https://gitee.com/HiSpark/fbb_ws63/blob/master/tools/HiSparkStudio工具下载及安装.md)**），报错如下：

![image.png](figures/1.png)

**解决方案：**

- 步骤一：检查python版本是否安装以及正确，在“命令行窗口”输入Python查看版本号，如果版本号不正确或者python没有安装，参考HiSpark Studio工具下载及安装

![image.png](figures/12.png)

- 步骤二： [下载kconfiglib下载链接](https://files.pythonhosted.org/packages/8a/f1/d98a89231e779b079b977590efcc31249d959c8f1d4b5858cad69695ff9c/kconfiglib-14.1.0-py2.py3-none-any.whl)

- 步骤三： [下载插件cmake下载](https://files.pythonhosted.org/packages/65/7f/80cf681cd376834b442af8af48e6f17b4197d20b7255aa2f76d8d93a9e44/cmake-3.20.5-py2.py3-none-win_amd64.whl)

- 步骤四： [下载插件pycparser](https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl)

- 步骤五： [下载插件windows_curses](https://files.pythonhosted.org/packages/18/1b/e06eb41dad1c74f0d3124218084f258f73a5e76c67112da0ba174162670f/windows_curses-2.3.3-cp311-cp311-win_amd64.whl)

- 步骤六：将kconfiglib、cmake、pycparser、windows_curses等文件存放在同一个目录下（**任意目录即可**），在目录文件夹上放输入“cmd”

  ![image.png](figures/13.png)

- 步骤七：输入python -m pip install windows_curses-2.3.3-cp311-cp311-win_amd64.whl回车

  ![image.png](figures/14.png)

- 步骤八：输入python -m pip install cmake-3.20.5-py2.py3-none-win_amd64.whl回车

  ![image.png](figures/15.png)

- 步骤九：输入python -m pip install kconfiglib-14.1.0-py2.py3-none-any.whl回车

  ![image.png](figures/16.png)

- 步骤十：输入python -m pip install pycparser-2.21-py2.py3-none-any.whl回车

  ![image.png](figures/17.png)

- 步骤十一：在IDE中点击“编译”再次编译，编译成功。

  ![image.png](figures/18.png)


## 2.如果在编译的过程中，出现如下报错“ninja：build stopped； subcommand failed flashboot start build”等字段，代表flashboot编译失败（（**注意：用户名不包含中文路径，如果包含中文路径请参考[HiSpark Studio工具下载及安装](https://gitee.com/HiSpark/fbb_ws63/blob/master/tools/HiSparkStudio工具下载及安装.md)**），报错信息如下：

![image.png](figures/2.png)

**解决方案：**

- 步骤一 在电脑系统环境变量中，添加环境变量（这里以win10为例，如果是win11，可以在百度搜索如何添加环境变量），在此电脑鼠标“右键”，点击“属性”
  ![image.png](figures/20.png)
- 步骤二：弹出系统属性框，点击“环境变量”
  ![image.png](figures/21.png)
- 在系统环境变量，选择“Path”，双击进入
  ![image.png](figures/22.png)
- 在编辑环境变量中添加“xxx\HiSpark Studio\tools\Windows\ninja”、“xxx\HiSpark Studio\tools\Windows\gn”、“xxx\HiSpark Studio\tools\Windows\cc_riscv32_musl_fp_win\bin”在几个环境变量（xxx代表HiSpark Studio安装目录），添加完成后，点击“确定”。
  ![image.png](figures/23.png)
  ![image.png](figures/24.png)
  ![image.png](figures/25.png)
  ![image.png](figures/26.png)
- 环境变量安装完成后，测试是否添加成， 在“命令行窗口分别输入“ninja --version”、“gn -version”、“riscv32-linux-musl-gcc -v”，出现如下图所示版本号代表成功
  ![image.png](figures/27.png)
- 在IDE中点击“编译”再次编译，编译成功。
  ![image.png](figures/19.png)

## 3.如果在编译的过程中，出现如下报错，“no module named "_curses"

![image.png](figures/3.png)

**解决方案：**

- 步骤一：检查python版本是否安装以及正确，在“命令行窗口”输入Python查看版本号，如果版本号不正确或者python没有安装，参考HiSpark Studio工具下载及安装

  ![image.png](figures/28.png)

- 步骤二：输入pip install windows_curses-2.3.3-cp311-cp311-win_amd64.whl回车

  ![image.png](figures/29.png)

## 4. 如果在编译的过程中，出现如下报错“CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set.You probably need to select a different build tool.”等字段，代表Ninja没有加到环境变量（**注意：用户名不包含中文路径，如果包含中文路径请参考[HiSpark Studio工具下载及安装](https://gitee.com/HiSpark/fbb_ws63/blob/master/tools/HiSparkStudio工具下载及安装.md)**），报错信息如下：

![image.png](figures/4.png)

**解决方案：**

- 步骤一 在电脑系统环境变量中，添加环境变量（这里以win10为例，如果是win11，可以在百度搜索如何添加环境变量），在此电脑鼠标“右键”，点击“属性”
  ![image.png](figures/20.png)
- 步骤二：弹出系统属性框，点击“环境变量”
  ![image.png](figures/21.png)
- 在系统环境变量，选择“Path”，双击进入
  ![image.png](figures/22.png)
- 在编辑环境变量中添加“xxx\HiSpark Studio\tools\Windows\ninja”、“xxx\HiSpark Studio\tools\Windows\gn”、“xxx\HiSpark Studio\tools\Windows\cc_riscv32_musl_fp_win\bin”在几个环境变量（xxx代表HiSpark Studio安装目录），添加完成后，点击“确定”。
  ![image.png](figures/23.png)
  ![image.png](figures/24.png)
  ![image.png](figures/25.png)
  ![image.png](figures/26.png)
- 环境变量安装完成后，测试是否添加成， 在“命令行窗口分别输入“ninja --version”、“gn -version”、“riscv32-linux-musl-gcc -v”，出现如下图所示版本号代表成功
  ![image.png](figures/27.png)
- 在IDE中点击“编译”再次编译，编译成功。
  ![image.png](figures/19.png)

## 5.如果在编译的过程中，出现如下报错“ccache:Failed to create directory c:\users\乱码\AppData\Local\ccache/tmp:Permission denied.”等字段，代表没有权限创建文件（**注意：用户名不包含中文路径，如果包含中文路径请参考[HiSpark Studio工具下载及安装](https://gitee.com/HiSpark/fbb_ws63/blob/master/tools/HiSparkStudio工具下载及安装.md)**），报错信息如下：

![image.png](figures/5.png)

**解决方案：**

- 步骤一：找到HiSpark Studio图标，并鼠标右键

  ![image.png](figures/30.png)

- 步骤二：选择以管理员身份打开

  ![image.png](figures/31.png)

- 步骤三：在IDE中点击“编译”再次编译，编译成功。

  ![image.png](figures/32.png)

## 6.在编译过程中遇到如下报错出现ModuleNotFoundError: No module named 'utils.build_utils'

================================ [CLEAN SUCCESS] Took 0.00 seconds ================================

================================ [Python环境正常] ================================

Traceback (most recent call last):

File "d:\hispark\fbb_ws63\src\build.py", line 45, in <module>

  from cmake_builder import CMakeBuilder

File "D:\hispark\fbb_ws63\src\build\script\cmake_builder.py", line 10, in <module>

  from utils.build_utils import exec_shell, root_path, output_root, sdk_output_path, pkg_tools_path

ModuleNotFoundError: No module named 'utils.build_utils'

================================ [FAILED] Took 1.56 seconds ================================

**解决方法：**

- 步骤一：检查python版本，是否为3.11.4

- 步骤二：如果不属于将python版本更换为3.11.4

## 7.编译过程中报“riscv-linux-musl-gcc.exe:error：createprocess:no such file or directory”等字样

![354c28ccbac2c5521c9197329ccc907e.jpeg](figures/7.jpeg)

**解决方法1：**

- 步骤一：找到SDK根目录Cmakelist文件，文件相对路径SDK根目录CMakeLists.txt

- 步骤二：屏蔽掉19-22行内容，重新编译即可

![image.png](figures/33.png)

**解决方法2：**

如果上面方法还是没有解决你的问题，请参考如下方法：

- 步骤一：在G盘或者D盘等目录下新建一个hispark文件夹，将src目录下的所有文件复制到hispark文件夹中，例如将G/fbb_ws63/src目录下的内容，复制到G/hispark文件

![image.png](figures/34.png)

- 步骤二：复制完成后，将.hiproj文件删除，.vscode删除

![image.png](figures/35.png)

- 步骤三：重新通过HiSpark Studio新建工程导入，工程路径和软件包选择G/hispark目录，重新编译即可

## 8.HiSparkStudio在编译过程，插件已经安装，但是打开系统配置时，报no module named 'kconfiglib'

![image.png](figures/8.png)

**解决方法:**

- 步骤一：检查python版本是否安装以及正确，在“命令行窗口”输入Python查看版本号，如果版本号不正确或者python没有安装

  ![image.png](figures/36.png)

- 步骤二：python版本正确，则输入pip list查看安装的包和版本号

  ![image.png](figures/37.png)

- 步骤三：在python安装目录查找是否有kconfiglib-14.1.0.dist-info这个文件夹，如果没有，则使用python -m pip install kconfiglib=14.1.0

  ![image.png](figures/38.png)

- 步骤4：版本有没有问题情况下，检查一下HiSpark Stuido 的版本号，是否为1.0.0.10及以上版本，如果不是，可以在 https://developers.hisilicon.com/devCenter/index?id=9dfafc50-7189-4fb4-a下载最新版本即可

  ![image.png](figures/39.png)

## 9.在HiSpark编译W63代码时，碰到一个 “ninja:fatal: CreateProcess: The parameter is incorrect. (is the command line too long?)” 的错误

![image.png](figures/9.png)

**解决方法1:**

- 步骤一：把源代码的路径名改短，原来的路径名为: **D:\fbb_ws63-master\src** 改为: **D:\ws63\src**这种方法，我试了可行。

**解决方法2：**

- 第一种把cmake的版本降低，在我编译出现上面这个错误时，我发现我的 cmake版本比较高，版本：3.31.6，然后把 cmake的版本降低到 3.20.5 就解决这个问题了。cmake版本降低的方法比较简单，你把python卸载掉，然后再把HiSpark卸载掉。再重新安装HiSpark会自动安装python 和 需要的 cmake版本。
  或者其他方法也可以。

## 10.部分设备 HiSpark Studio 编译过慢的解决方案（Win11），Windows11系统，使用 HiSpark Studio 编译 WS63的 SDK 时（尤其是 “重编译”），有时非常慢，动辄十几分钟，更有甚者几十分钟。

- 步骤一 ：打开 `Windows` 安全中心，点击 “威胁和病毒防护”。

  ![image.png](figures/40.png)

- 步骤二：打开 “病毒威胁和防护设置” 的 “管理设置”，下滑找到 “排除项”， 点击 “添加或删除排除项”。

  ![image.png](figures/41.png)

- 步骤三：在 “排除项” 中添加我们的 `SDK` 目录。

![image.png](figures/42.png)
