zoukankan      html  css  js  c++  java
  • mipslinuxgcc交叉编译工具链搭建小结

    这几天开始做毕业设计了,MPEG2解码的MIPS实现,代码啥的网上一大堆,最大的困难也许不是理解代码,而是搭建环境,也就是搭建mips-linux-gcc交叉编译的环境。

    网上铺天盖地的都是arm-linux-gcc工具链的教程,唯独MIPS这一块资料很是匮乏,就连极少数的几篇讲搭建工具链的博文都是互相copy的。

    两天一夜,终于把工具链给搞定了,期间的痛苦也只有自己能体会,那是一种在茫茫大海中寻求救援的无助感。每次碰到问题,问谷歌或百度大部分回答都是牛头不对马嘴,有些人可能相对严谨的解决,但也不能做到面面俱到。事实上,对于我们这种新手,最大的帮助就是面面俱到:对可能遇到的问题都有合理的解释和解决方法。但实际中,往往是为了解决一个小问题,反而引来许多一连串莫名其妙的问题,很是挠人。

    废话就这么多。

    下面介绍我本次安装交叉编译工具链的过程。

    起初试了传说中高端牛逼的buildroot工具,该工具能够配置各种硬件平台的编译工具、交叉编译工具链等等,只有你想不到,没有它做不到,但是高端的工具往往会带来一个副作用:低端人士基本不会用。我就是活生生的例子,从昨天上午8点30分开始,一直到下午5点,期间不吃不喝几乎都忘了上厕所,最后还是没搞出来。后来相继尝试了许多方法,也都以失败告终。

    最后没办法,决定直接用别人做好的工具链, ftp://ftp.linux-mips.org/pub/linux/mips/people/macro/RPMS 在这个ftp服务器上,我找到了我需要的工具

    首先我们的PC机是i386架构的,所以就进i386的目录下,

    这里有许多mips打头的rpm包,这些就是我们需要的工具链!

    这时我们可以根据你所使用的mips处理器是大端或小端来下载所需的工具,大端的工具都是以mips开头的,而小端都是以mipsel开头。

    最后我们需要下载的是这几个包:

    mips-linux-binutils-x.xx.x-x.i386.rpm

    mips-linux-gcc-x.xx.x-x.i386.rpm

    mips-linux-gcc-c-x.xx.x-x.i386.rpm

    mips-linux-gcc-cpp-x.xx.x-x.i386.rpm

    mips-linux-sim-x.xx.x-x.i386.rpm

    这几个工具装好之后,我们就可以写个helloworld测试一下了:

    #include <stdio.h>
    void main()
    {
        printf("Hello World!\n");  
    }

    然后执行:

    mips-linux-gcc hello.c -o hello

    编译失败了。提示说找不到stdio.h,这是因为我们PC上并没有对应mips的动态链接库,所以我们编译的时候还需要加上静态选型

    mips-linux-gcc -g hello.c -o hello -static

    但是执行这句后,我们还是失败了。

    提示还是老样子。

    解决办法:我们还需下载一个静态库文件的包,有了这个包,我们的静态编译才能通过。

    ftp://ftp.linux-mips.org/pub/linux/mips/people/macro/RPMS/noarch/下面找到

    mips-linux-glibc-devel-x.x.xx.noarch.rpm

    mips-linux-glibc-static-x.x.xx.noarch.rpm

    安装完这两个之后就大功告成了,重新执行上面的编译命令,成功编译出可执行文件。当然,这个可执行文件得用mips仿真器才能运行。

  • 相关阅读:
    LeetCode 32. 最长有效括号(Longest Valid Parentheses)
    LeetCode 141. 环形链表(Linked List Cycle)
    LeetCode 160. 相交链表(Intersection of Two Linked Lists)
    LeetCode 112. 路径总和(Path Sum)
    LeetCode 124. 二叉树中的最大路径和(Binary Tree Maximum Path Sum)
    LightGBM新特性总结
    sql service 事务与锁
    C#泛型实例详解
    C# 中的委托和事件(详解)
    C# DateTime日期格式化
  • 原文地址:https://www.cnblogs.com/evisie/p/2802363.html
Copyright © 2011-2022 走看看