zoukankan      html  css  js  c++  java
  • <redhat企业版6>交叉编译hello.c时遇到的问题及解决历程

    交叉编译hello.c遇到的问题及解决历程

      交叉编译链hello.c:

        arm-linux-gcc -static hello.c -o hello.

      执行语句后出现错误:缺少共享库libstdc++.so.6(如图)

    d

      这种问题之前遇到过,就是安装缺少的so包文件,于是上网查找到应该安装的包。由于上次安装glibc时给系统换了源,所以只要执行下面命令即可: yum install libstdc++.i686

    成功安装后再次编译hello.c,发现还是出现上述错误。之后我在/usr/lib64文件夹下找到了libstdc++.so.6的库文件(如图)

      既库文件在这里,而编译时就是找不着这个库。于是我的思路是:给它指定动态库路径,按照网友帖子一顿操作,再次尝试编译hello.c,发现还是不行(哎!)这下回到起点了。

    我的分析可能出错的地方:①找到的libstdc++.so.6文件不是需要的共享库文件,因为该文件为浅蓝色——链接文件.②.我指定动态库路径有问题,并没有能够链接到需要的共享库。

    (我暂时还不能解释这是什么原因,写下随笔一是记录学习,二是希望网友能给点意见

      但是我还是解决了该问题,尽管我自己不知道怎么就解决了!!嘻嘻

      接下来我再次尝试安装了该so库文件包,不过这次是在网上下载的rpm包:libstdc++-4.4.7-18.el6.i686.rpm以及安装依赖的另一个RPM包libgcc-4.4.7-18.el6.i686.rpm(点击即可转到下载页面).两个包要一起安装,安装命令:

            rpm -ivh libstdc++-4.4.7-18.el6.i686.rpm libgcc-4.4.7-18.el6.i686.rpm

      再再次编译,奇迹出现了,出现错误,缺少libz.so.1库(如图)。

      虽然还是出错,但好歹上一个错误没再出现,当然还是安装相关文件包,执行命令:

                           yum install zlib.i686 

      安装成功后,再再再次编译,终于没有错误,获得可执行文件 hello。

      

     

      之后通过串口hello文件传输到开发板上,把文件属性改为可执行 chmod +x hello ,成功在mini2440运行该程序。

    最后附上我查看的一篇博客地址,这篇文章介绍了各种xx.s0.xx缺少时需要安装的文件包(非常感谢!!)。

  • 相关阅读:
    unity导弹算法 预计目标点
    unity编辑器xml数据库插件
    简单Unity时间架构设计(克洛诺斯之匙)
    Unity武器系统的优化
    暴风魔镜安卓手柄输入检测接口
    基于unity的飞行模拟设计
    C#打印日志的小技巧
    启示录
    关于击杀与辅助奖励的方案
    unity抛物线,平均速度下的运动轨迹
  • 原文地址:https://www.cnblogs.com/jason-notbook/p/9016519.html
Copyright © 2011-2022 走看看