由于Linux服务器难以访问的原因,决定自己再windows本地搭建一套可以运作的编译链。代码的上传和下载通过TortoiseGit进行实现,编辑使用本地SourceInsight4.0进行实现。唯独编译环境难以实现,代码的编译使用Linux的服务器上的RISCV GCC 进行编译的,本地没有Linux环境,所以需要创建搭建本地Linux服务器编译环境。
编译环境搭建有以下几种方案:
1. 虚拟机,代码共享成为问题,不自由,虚拟机版本权限问题也是主要问题;
2. git Bash, git bash是一个针对linux系统命令行的工具,可以安装GCC和Make, 安装上工具链之后总是显示 gcc: cannot execute binary file: Exec format error, 换了几个版本没有搞定,待研究补充。
3. WSL,编译的代码和编译环器路径都放在windows上,通过Linux命令行实现编译,Linux版本采用Ubuntu20版本;
WSL(windows subsystem for linux), 这个系统是window10专业版的子系统,可以通过Microsoft Strore上进行下载,不过目前只能安装商店上的已经存在的。使用这种方式解决了windows虚拟机安装之后配网和文件共享带来的问题,WSL可以访问window资源的任何路径下的文件,并且文件权限都是有的。
这个安装步骤比较广泛,网络上搜索会有很多,下面主要是三个步骤:
(1)启用开发者模式
(2)在 windows功能 中,启用 适用于 Linux 的 Windows子系统
(3)在应用商店种选择自己需要安装的系统安装
安装完成之后,开始界面会出现Ubuntu的图标,需要重启电脑,再次打开Ubuntu图标需要过一会才能完成安装。安装过程中有账号和密码的配置,记得配置好的账号密码,root的时候会用到
安装完成之后的Ubuntu如下, 纯命令行模式的:
RISC-V工具链的下载链接: https://github.com/ilg-archived/riscv-none-gcc/releaseshttps://github.com/ilg-archived/riscv-none-gcc/releases
这里使用的是 gnu-mcu-eclipse-riscv-none-gcc-8.2.0-2.2-20190521-0004-centos64.tgz, 将其加压到自己windows系统的路径下,也就是安装路径。然后再系统环境变量中添加环境变量路径。
解压命令如下:
zDarkBlue@Host:/mnt/d/software/gcc$ tar zxvf gnu-mcu-eclipse-riscv-none-gcc-8.2.0-2.2-20190521-centos32.tgz -C ./
这里安装使用的路径是:D:\software\gcc\
环境变量的添加路径就是:D:\software\gcc\gnu-mcu-eclipse\riscv-none-gcc\8.2.0-2.2-20190521-0004\bin, 注意要到bin文件夹;
上面的路径是windows下的路径,再UBuntu中使用的路径会有所不同,下面会写到。
至此,GCC For RISC-V的编译环境就安装好
安装的UBuntu没有make,需要手动安装make工具,安装使用sudo输入密码的方式安装:
make 工具安装好之后,在对自己的代码进行编译之前需要修改代码工程的makefile文件,目的是make能够找到GCC工具链,说白了就是告诉make gcc的路径。ubuntn下GCC的路径跟Windows不一样。
原来配置的GCC路径是:D:\software\gcc\gnu-mcu-eclipse\riscv-none-gcc\8.2.0-2.2-20190521-0004\bin
在makefile中修改的路径是/mnt/d/software/gcc/gnu-mcu-eclipse/riscv-none-gcc/8.2.0-2.2-20190521-0004/bin
注意:一个是斜杠的变化,一个必须需要添加/mnt 因为c/d/e 盘都是挂载在UBuntu系统中的;
另外,因为WSL是子系统,windows下配置的环境变量都是可以通过WSL看到的, 直接复制即可, 通过以下指令获取PATH;
zdrakblue@host:/$ echo $PATH
/mnt/d/software/gcc/gnu-mcu-eclipse/riscv-none-gcc/8.2.0-2.2-20190521-0004/bin:/mnt/d/software/gcc/gnu-mcu-eclipse/riscv-none-gcc/8.2.0-2.2-20190521-0004/lib:/mnt/d/software/gcc/gnu-mcu-eclipse/riscv-none-gcc/8.2.0-2.2-20190521-0004/include:
至此,基于WSL的RISC-V的GCC交叉工具链搭建 完成,就可以到自己代码的目录执行make了。