龙芯杯MIPS-GCC交叉编译环境配置
NSCSCC(龙芯杯)提供的龙芯编译环境。
下载安装
下载龙芯提供的编译环境配置压缩包:
gcc-4.3-ls232.tar.gz
终端下进入gcc-4.3-ls232.tar.gz所在目录,将环境加压至根目录。
1 | sudo tar -zxvf gcc-4.3-ls232.tar.gz -C / |
向.bashrc文件添加路径。
1 | echo "export PATH=/opt/gcc-4.3-ls232/bin:$PATH" >> ~/.bashrc |
对于64位系统,还要安装32位环境支持。
1 | sudo apt-get install lsb-core |
某 CPU设计实战 书上还要求安装lib32ncurses-dev,装的时候报Unable to locate package,去查了一下发现Ubuntu下根本没这个包,最相近的叫lib32ncurses5-dev,装了一下,好像没什么用。
如果可以输入mipsel-linux-gcc -v
命令查看版本号则安装成功。
WSL环境下编译测试程序的问题
如果用WSL2作为Linux环境编译测试程序(测试程序放在Windows目录下,在Linux终端中通过/mnt目录访问Windows磁盘),会产生如下报错:
1 | Value too large for defined data type |
原因是目标文件inode号过大,超过32位系统的识别范围,可以ls -li验证一下。
网上给了很多解决方案,试了一下没有奏效的。最后果然最简单的办法最有效,把文件拷贝到Linux目录下,inode号就变得正常了,make好了再拷回Windows目录。
折腾半天就是为了gs132跑出的trace文件和ram_ip初始化的inst_ram.coe文件。以后有时间可能会整理一下发个仓库,避免重复劳动。
引用
unable-to-locate-package-error-ubuntu
packages.ubuntu.com
清华uCore实验-移植MIPS软核
mipsel-linux-gcc工具链搭建
GCC编译“Value too large for defined data type”错误解决办法
解决Value too large for defined data type问题
Linux下出现Value too large for defined data type的报错
inode爆炸问题解决
gcc编译参数概述