在ubuntu上安装编译MIPS指令的包Sourcery CodeBench Lite for MIPS(交叉编译环境)
来源:互联网 发布:昆明市网络预约出租车 编辑:程序博客网 时间:2024/06/07 23:37
为了编译《计算机组成与设计-硬件/软件接口》上的程序,然而UbuntuX86上的gcc只能编译成X86汇编。
Sourcery CodeBench出了一个gcc工具链用于编译为MIPS汇编。
我们平时的编译,叫做本地编译,也就是编译成当前平台下的汇编。相反,交叉编译可以编译成别的平台的汇编(编译的平台和编译出来的程序的平台是不一样的)
Sourcery CodeBench有收费版和免费版,我用的是免费版。
https://sourcery.mentor.com/GNUToolchain/subscription3537?lite=MIPS
在这里找到下载最新版本。
有两个版本:GNU/Linux版本和ELF版本
我下载的是https://sourcery.mentor.com/GNUToolchain/release3133
参考文档:https://sourcery.mentor.com/GNUToolchain/doc22952/getting-started.pdf
两个版本区别见最底下注1。
右键勾上可执行的权限。
命令行执行
$ ./mips-2015.11-32-mips-linux-gnu.bin
然而没法执行。寻求各种文档各种问答。找到解决方法:https://sourcery.mentor.com/GNUToolchain/kbentry62
Since 12.04 Ubuntu introduced Multi Arch (https://wiki.ubuntu.com/MultiarchSpec) and removed ia32-libs ia32-libs-gtk packages from the repository. To install 32-bit libs you need the run the following command line
ubuntu在12.04后,移除了32位的库,因此我们得安装
命令行如下:
$ sudo dpkg --add-architecture i386$ sudo apt-get update$ sudo apt-get install libgtk2.0-0:i386 libxtst6:i386 gtk2-engines-murrine:i386 lib32stdc++6 libxt6:i386 libdbus-glib-1-2:i386 libasound2:i386
如果不能安装,出现“Hash 校验和不符”或者“发生故障,这可能是有软件包被要求保持现状的缘故。”,请跳到最后注2。
安装32位库后,我们可以打开该文件了bin。
然后按照指示进行安装即可。Ubuntu的话,取消在桌面生成图标。
如果中途失败退出了,请再运行一次,安装在同一目录下即可继续安装。
安装后,重启,命令行输入mips-linux-gnu-gcc -v可以看到结果。
mips-的参数可见https://gcc.gnu.org/onlinedocs/gcc/MIPS-Options.html
#include<stdio.h>int main(){printf("hello");}
.file1 "hello.c".section .mdebug.abi32.previous.nanlegacy.modulefp=32.moduleoddspreg.abicalls.optionpic0.rdata.align2$LC0:.ascii"hello\000".text.align2.globlmain.setnomips16.setnomicromips.entmain.typemain, @functionmain:.frame$fp,32,$31# vars= 0, regs= 2/0, args= 16, gp= 8.mask0xc0000000,-4.fmask0x00000000,0.setnoreorder.setnomacroaddiu$sp,$sp,-32sw$31,28($sp)sw$fp,24($sp)move$fp,$splui$2,%hi($LC0)addiu$4,$2,%lo($LC0)jalprintfnopmove$2,$0move$sp,$fplw$31,28($sp)lw$fp,24($sp)addiu$sp,$sp,32j$31nop.setmacro.setreorder.endmain.sizemain, .-main.ident"GCC: (Sourcery CodeBench Lite 2015.11-32) 5.2.0"
参考:https://sourcery.mentor.com/GNUToolchain/release3136
http://askubuntu.com/questions/463457/how-to-find-packages-when-updating-ubuntu-and-creating-standard-source-list-file
http://www.tuicool.com/articles/nAJJVj
http://www.cnblogs.com/zhangpengshou/archive/2009/12/05/1617719.html
http://imgtec.eetrend.com/forum/2371
注一:
注2:出现这种情况是因为被墙了。重新选择新的源,参照这个的第二http://www.cnblogs.com/memory4young/p/ubuntu-apt-get-update-error-hash-sum-mismatch.html
最后,他给我选择了个香港的源。不知道是不是我修改了hosts的原因
- 在ubuntu上安装编译MIPS指令的包Sourcery CodeBench Lite for MIPS(交叉编译环境)
- Sourcery CodeBench Lite 2011.03-93 for MIPS GNU/Linux
- Ubuntu安装mips平台交叉编译环境
- Ubuntu下搭建MIPS交叉编译环境
- Ubuntu下搭建MIPS交叉编译环境
- Ubuntu下搭建MIPS交叉编译环境
- Ubuntu下搭建MIPS交叉编译环境
- 在 x86 上面交叉编译 gstreamer for arm(zz)与MIPS平台上的编译(原)
- linphone-2.0.1在MIPS环境下的交叉编译
- openssl交叉编译 mips环境
- Mips 交叉编译工具安装
- linphone的交叉编译(MIPS)
- mosquitto的交叉编译mips
- 【转】sourcery g++ lite 建立交叉编译环境
- 使用sourcery g++ lite建立交叉编译环境
- Sourcery CodeBench Lite for IA32 GNU/Linux
- 在 x86 上面交叉编译 gstreamer for arm $ MIPS
- 在 x86 上面交叉编译 gstreamer for ARM/MIPS
- Eclipse输入Java和XML代码自动提示功能最简单的方法
- SQL GROUP BY 语句
- assign copy retain weak strong 区别【读Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法】
- 【杭电oj】3785 - 寻找大富翁(水)
- 【慕课笔记】第六章 JAVA中的集合框架(下) 第4节 学生选课——判断Map中是否包含指定的key和value
- 在ubuntu上安装编译MIPS指令的包Sourcery CodeBench Lite for MIPS(交叉编译环境)
- vsftpd的配置
- oracle11g R2 RAC卸载grid
- label添加删除线
- Android 5.1.1 使用Adb shell截屏并上传PC批处理
- AutoCompleteTestView输入单个字符不提示
- iOS-UITableView 右侧箭头+取消分割线+取消选中样式+自定义分割线(原生和自定义cell)
- Oracle 11g R2 RAC 卸载 grid
- 解决Myeclipse 8.5上新建的项目无法在Eclipse上运行的办法