通过国内镜像下载riscv工具链源码并自行编译
- 设置git选项避免失败;
- 通过gitee下载主仓;
- 修改.gitmodule为国内镜像,加速下载子仓;
- 编译rv64工具链并设置环境变量;
下载工具链源码
设置git选项
首先,设置http.postBuffer
选项为2000M
,我也不知道是什么作用,但我猜测他是一个库的文件大小的上限?
我设置成1000M
的时候,一旦下载到大于1G的内容,就会显示出现异常的EOF
.
1 |
|
下载代码
这个命令只是下载了主仓,如果你想要同时递归下载所有子仓的话,可以加上参数--recursive
.也可以下载完主仓之后再另外下载子仓.
1 |
|
cd
进入源码目录后,输入以下命令下载子仓,其中到--progress
命令可以显示下载进度.
1 |
|
加速下载
如果下载实在很慢,可以修改源码目录下的.gitmodules
文件,
其中的github仓库,在gitee都有镜像.只需要把地址改成https://gitee.com/mirrors/<仓库>
比如https://github.com/riscv-collab/riscv-binutils-gdb.git
可以改成https://gitee.com/mirrors/riscv-binutils-gdb.git
其中qemu
在gitee
上没有镜像,但是北京外国语大学提供了镜像.我们可以把那一项的地址改成url = https://mirrors.bfsu.edu.cn/git/qemu.git
修改完上述内容之后,先执行以下命令刷新,然后再去下载子仓.
1 |
|
编译
在编译之前,需要安装一些工具
1 |
|
在/opt
目录下创建一个riscv
目录,用以存放工具链.
1 |
|
开始编译,以下命令编译的是64位,如果想要编译其他版本,可以看readme
文档的说明来设置对应参数.
1 |
|
编译完成后,/opt/riscv/bin
中会出现一些可执行文件.
为了方便调用他们,可以修改~/.bashrc
脚本,每次启动终端时自动将这个目录添加到环境变量.
在~/.bashrc
的最末尾,加上这句话.
1 |
|
如果你的工具链放在其他位置,那么就把上文到/opt/riscv/bin
改成你的工具链的可执行文件的路径即可.
这时候重新启动终端,就可以直接在命令行使用你编译的riscv工具链.