• [移植"myslam"到zynq上的arm手记] 3


    1. hello world

    没毛病,在arm上成功运行

    2. useEigen

    第一次报错:

    ./eigenMatrix: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./eigenMatrix)
    ./eigenMatrix: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./eigenMatrix)
    

    板子上的系统里的libstdc++.so.6太老了,到xilinx的那坨里头找,然后替换

    注意是armhf架构,找gnueabihf

    找到路径是 /media/albireo/backup/opt/Xilinx/SDK/2017.1/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/lib/libstdc++.so.6

    看到link target: libstdc++.so.6.0.22

    把 libstdc++.so.6.0.22 撸到板子上

    cp libstdc++.so.6.0.22 /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.22
    rm -rf libstdc++.so.6
    ln -s libstdc++.so.6.0.22 libstdc++.so.6
    

    再次尝试,第二次报错

    ./eigenMatrix: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.18' not found (required by /usr/lib/arm-linux-gnueabihf/libstdc++.so.6)
    ./eigenMatrix: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.17' not found (required by /usr/lib/arm-linux-gnueabihf/libstdc++.so.6)
    

    同样的操作

    结果发现炸了,libc好像太底层了, rm掉libc.so.6之后,ln等基础的命令都无法使用了(当然,这时候如果关机的话就没法启动了,虽然也并没有什么事情

    因为问题出在没了libc.so.6,找不到库了,直接用LD_PRELOAD指定使用libc-2.15.so,链接上

    LD_PRELOAD=libc-2.15.so ln -s libc-2.22.so libc.so.6
    

     链接上libc-2.22.so之后发现还是不行,仅仅libc-2.15.so换掉并不行,还会报其他的库的错,尝试依次替换,没有什么卵用。把2.15的重新链接回去,放弃这种搞法。

    尝试其他办法。报错原因是编译用的xilinx给的交叉编译器和板子上的arm-linux-gnueabihf不一样(首先版本就不一样,其他还有啥区别就不知道了),应该弄成一样就行了

    去linardo那找他们提供的最新的filesystem以及对应的编译器,分别是15.06和4.8,选择gnueabihf

    http://releases.linaro.org/archive/15.06/ubuntu/vivid-images/gnome/

    http://releases.linaro.org/archive/15.06/components/toolchain/binaries/4.8/armeb-linux-gnueabihf/

    下载一看,里面的各种so的版本真的都是一样耶(废话

    文件系统弄到sd卡上,把xilinx的交叉编译器扔掉,换成新的,加入环境变量

    export PATH=/home/albireo/lib/gcc-linaro-4.8-2015.06-x86_64_arm-linux-gnueabihf/bin:$PATH
    

     重新编译hello world和useEigen,撸到板子上,运行通过。就很舒服

    然而板子上装的新系统不知道为啥连不上network了,就很难受

  • 相关阅读:
    树-构建二叉树
    爬虫-scrapy框架详解(17)
    How to identify the HBA cards/ports and WWN in Linux
    NetBackup常用网络端口整理
    keepalived+MySQL实现高可用
    nginx配置https双向验证(ca机构证书+自签证书)
    systemd设置nginx开机自启动
    Keepalived+Nginx搭建主从高可用并带nginx检测
    windows 挂在EMC 存储
    linux时间同步,ntpd、ntpdate
  • 原文地址:https://www.cnblogs.com/dreamingsheep/p/8624403.html
Copyright © 2020-2023  润新知