MIPS-GCC 交叉编译环境配置
NSCSCC(龙芯杯)提供的龙芯编译环境。
下载安装
下载龙芯提供的编译环境配置压缩包:
gcc-4.3-ls232.tar.gz
终端下进入 gcc-4.3-ls232.tar.gz 所在目录,将环境加压至根目录。
sudo tar -zxvf gcc-4.3-ls232.tar.gz -C /
向 .bashrc 文件添加路径。
echo "export PATH=/opt/gcc-4.3-ls232/bin:$PATH" >> ~/.bashrc
对于 64 位系统,还要安装 32 位环境支持。
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 磁盘),会产生如下报错:
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的报错
- 某佬的文章
- gcc编译参数概述
好好泔,日子会越来越钿。


文章介绍了如何配置龙芯的MIPS-GCC交叉编译环境,包括下载安装、路径设置和32位环境支持。在WSL2环境中遇到的‘Valuetoolargefordefineddatatype’错误,因inode号过大导致,通过将文件拷贝到Linux目录下解决该问题。
4196

被折叠的 条评论
为什么被折叠?



