zoukankan      html  css  js  c++  java
  • ubuntu 10.04 安装arm交叉编译器

    家里有一台cotext-A9(armv7-a) 的盒子,现在不用了,

    一直想着废物利用。于是想怎么为这盒子编译程序。

    目标机器:

    root@routon-h1:/# uname -a
    Linux routon-h1 2.6.34 #3 SMP Mon Oct 29 19:01:06 CST 2012 armv7l GNU/Linux

    装了一台 ubuntu 10.04 X86 的虚拟机

    root@ubuntu:~# uname -a
    Linux ubuntu 2.6.32-38-generic #83-Ubuntu SMP Wed Jan 4 11:13:04 UTC 2012 i686 GNU/Linux
    
    root@ubuntu:~# lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 10.04.4 LTS
    Release:        10.04
    Codename:       lucid

    安装过程:

    apt-get install python-software-properties
    add-apt-repository ppa:linaro-maintainers/toolchain
    apt-get install gcc-4.4-arm-linux-gnueabi
    apt-get install g++-4.4-arm-linux-gnueabi

    测试代码:

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

    编译过程:

    root@ubuntu:~# arm-linux-gnueabi-gcc-4.4 -v  hello.c
    Using built-in specs.
    Target: arm-linux-gnueabi
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.4.6-3ubuntu1~ppa3' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.4.6 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --disable-sjlj-exceptions --with-arch=armv7-a --with-float=softfp --with-fpu=vfpv3-d16 --with-mode=thumb --disable-werror --enable-checking=release --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include --build=i486-linux-gnu --host=i486-linux-gnu --target=arm-linux-gnueabi --with-headers=/usr/arm-linux-gnueabi/include --with-libs=/usr/arm-linux-gnueabi/lib
    Thread model: posix
    gcc version 4.4.6 (Ubuntu/Linaro 4.4.6-3ubuntu1~ppa3)
    COLLECT_GCC_OPTIONS='-v' '-march=armv7-a' '-mfloat-abi=softfp' '-mfpu=vfpv3-d16' '-mthumb'
     /usr/lib/gcc/arm-linux-gnueabi/4.4.6/cc1 -quiet -v hello.c -quiet -dumpbase hello.c -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -auxbase hello -version -o /tmp/ccKJdMkG.s
    ignoring duplicate directory "/usr/lib/gcc/arm-linux-gnueabi/4.4.6/../../../../arm-linux-gnueabi/include"
    #include "..." search starts here:
    #include <...> search starts here:
     /usr/lib/gcc/arm-linux-gnueabi/4.4.6/include
     /usr/lib/gcc/arm-linux-gnueabi/4.4.6/include-fixed
     /usr/arm-linux-gnueabi/include
    End of search list.
    GNU C (Ubuntu/Linaro 4.4.6-3ubuntu1~ppa3) version 4.4.6 (arm-linux-gnueabi)
            compiled by GNU C version 4.4.3, GMP version 4.3.2, MPFR version 2.4.2-p1.
    GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128244
    Compiler executable checksum: d8b1c137400b627d969f13ef7d115d11
    COLLECT_GCC_OPTIONS='-v' '-march=armv7-a' '-mfloat-abi=softfp' '-mfpu=vfpv3-d16' '-mthumb'
     /usr/lib/gcc/arm-linux-gnueabi/4.4.6/../../../../arm-linux-gnueabi/bin/as -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mimplicit-it=thumb -meabi=5 -o /tmp/ccEJ19An.o /tmp/ccKJdMkG.s
    COMPILER_PATH=/usr/lib/gcc/arm-linux-gnueabi/4.4.6/:/usr/lib/gcc/arm-linux-gnueabi/4.4.6/:/usr/lib/gcc/arm-linux-gnueabi/:/usr/lib/gcc/arm-linux-gnueabi/4.4.6/:/usr/lib/gcc/arm-linux-gnueabi/:/usr/lib/gcc/arm-linux-gnueabi/4.4.6/../../../../arm-linux-gnueabi/bin/
    LIBRARY_PATH=/usr/lib/gcc/arm-linux-gnueabi/4.4.6/:/usr/lib/gcc/arm-linux-gnueabi/4.4.6/../../../../arm-linux-gnueabi/lib/
    COLLECT_GCC_OPTIONS='-v' '-march=armv7-a' '-mfloat-abi=softfp' '-mfpu=vfpv3-d16' '-mthumb'
     /usr/lib/gcc/arm-linux-gnueabi/4.4.6/collect2 --build-id --eh-frame-hdr -dynamic-linker /lib/ld-linux.so.3 -X --hash-style=both -m armelf_linux_eabi /usr/lib/gcc/arm-linux-gnueabi/4.4.6/../../../../arm-linux-gnueabi/lib/crt1.o /usr/lib/gcc/arm-linux-gnueabi/4.4.6/../../../../arm-linux-gnueabi/lib/crti.o /usr/lib/gcc/arm-linux-gnueabi/4.4.6/crtbegin.o -L/usr/lib/gcc/arm-linux-gnueabi/4.4.6 -L/usr/lib/gcc/arm-linux-gnueabi/4.4.6/../../../../arm-linux-gnueabi/lib /tmp/ccEJ19An.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/arm-linux-gnueabi/4.4.6/crtend.o /usr/lib/gcc/arm-linux-gnueabi/4.4.6/../../../../arm-linux-gnueabi/lib/crtn.o

    上传目标机器之后执行:

    root@routon-h1:/mnt/tool/reverse-h1# ./a.out
    Hello World
  • 相关阅读:
    windows 临界区 InitializeCriticalSectionAndSpinCount以及InitializeCriticalSection的区别
    SRWLock 轻量级的读写锁
    QT 遍历获取Form上的控件
    mssql 查询作业执行情况,耗时 等
    C++ builder FMX 遍历窗口所有控件 并 动态消失
    delphi fmx 控件从天上掉下来
    Vue2入门必知必会
    人人开源&项目脚手架&微服务整合
    Spring Security应用到源码分析
    K8S系统学习笔记总览
  • 原文地址:https://www.cnblogs.com/johnsonshu/p/4734020.html
Copyright © 2011-2022 走看看