• 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仿真器才能运行。

  • 相关阅读:
    树莓派开机黑屏只有光标无法进入图形界面桌面
    Python GDAL矢量转栅格详解
    Emacs基础使用教程及常见命令整理
    Elasticsearch
    微信公众号正确使用开放标签wxopenlaunchweapp
    Docker安装Clickhouse
    Docker 常用命令
    Spring Cloud Gateway java.lang.IllegalStateException: Invalid host: lb://manage_web
    安卓手机上部署nodejs服务器
    企业物联网平台如何选择?
  • 原文地址:https://www.cnblogs.com/evisie/p/2802363.html
Copyright © 2020-2023  润新知