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

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

目标机器:

root@routon-h1:/# uname -a
Linux routon-h1 2.6. # SMP Mon Oct :: CST armv7l GNU/Linux

装了一台 ubuntu 10.04 X86 的虚拟机

root@ubuntu:~# uname -a
Linux ubuntu 2.6.--generic #-Ubuntu SMP Wed Jan :: UTC i686 GNU/Linux root@ubuntu:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.04. 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\n");
}

编译过程:

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. (Ubuntu/Linaro 4.4.-3ubuntu1~ppa3)
COLLECT_GCC_OPTIONS='-v' '-march=armv7-a' '-mfloat-abi=softfp' '-mfpu=vfpv3-d16' '-mthumb'
/usr/lib/gcc/arm-linux-gnueabi/4.4./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./include
/usr/lib/gcc/arm-linux-gnueabi/4.4./include-fixed
/usr/arm-linux-gnueabi/include
End of search list.
GNU C (Ubuntu/Linaro 4.4.-3ubuntu1~ppa3) version 4.4. (arm-linux-gnueabi)
compiled by GNU C version 4.4., GMP version 4.3., MPFR version 2.4.-p1.
GGC heuristics: --param ggc-min-expand= --param ggc-min-heapsize=
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./../../../../arm-linux-gnueabi/bin/as -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mimplicit-it=thumb -meabi= -o /tmp/ccEJ19An.o /tmp/ccKJdMkG.s
COMPILER_PATH=/usr/lib/gcc/arm-linux-gnueabi/4.4./:/usr/lib/gcc/arm-linux-gnueabi/4.4./:/usr/lib/gcc/arm-linux-gnueabi/:/usr/lib/gcc/arm-linux-gnueabi/4.4./:/usr/lib/gcc/arm-linux-gnueabi/:/usr/lib/gcc/arm-linux-gnueabi/4.4./../../../../arm-linux-gnueabi/bin/
LIBRARY_PATH=/usr/lib/gcc/arm-linux-gnueabi/4.4./:/usr/lib/gcc/arm-linux-gnueabi/4.4./../../../../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./collect2 --build-id --eh-frame-hdr -dynamic-linker /lib/ld-linux.so. -X --hash-style=both -m armelf_linux_eabi /usr/lib/gcc/arm-linux-gnueabi/4.4./../../../../arm-linux-gnueabi/lib/crt1.o /usr/lib/gcc/arm-linux-gnueabi/4.4./../../../../arm-linux-gnueabi/lib/crti.o /usr/lib/gcc/arm-linux-gnueabi/4.4./crtbegin.o -L/usr/lib/gcc/arm-linux-gnueabi/4.4. -L/usr/lib/gcc/arm-linux-gnueabi/4.4./../../../../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./crtend.o /usr/lib/gcc/arm-linux-gnueabi/4.4./../../../../arm-linux-gnueabi/lib/crtn.o

上传目标机器之后执行:

root@routon-h1:/mnt/tool/reverse-h1# ./a.out
Hello World

ubuntu 10.04 安装arm交叉编译器的更多相关文章

  1. Ubuntu 18.04安装arm-linux-gcc交叉编译器

    Ubuntu 18.04安装arm-linux-gcc交叉编译器

  2. Ubuntu 18.04安装arm-linux-gcc交叉编译器(超简单,附安装包下载地址)

    目前网上搜索发现,最多人安装的是4.4.3版本的: arm-linux-gcc-4.4.3.tar.gz下载地址:https://pan.baidu.com/s/1rAIBASIRZAXl-P1UOW ...

  3. ubuntu 10.04 安装qt 5.0.2

    转自ubuntu 10.04 安装qt 5.0.2 从qt project网站下载下来最新的qt5.0.2套件,发现是个.run文件,添加x属性,然后直接sudo ./****.run, 提示  /l ...

  4. Ubuntu 10.04 安装Qt4.8.1 源码后字体模糊的问题

    Ubuntu 10.04 安装QT4.8.1 源码后字体模糊的问题. 附加解决 QT SDK 4.8.1 链接失败的问题 Ubuntu 10.04 编译QT源码后,编译程序,运行后IPA字体无法正常显 ...

  5. Ubuntu 10.04 安装流程

    ubuntu 10.04 安装流程   需安装libxrender-dev才能跑html5           来自为知笔记(Wiz)

  6. Ubuntu 10.04 安装 Oracle11gR2

    注意点: 在 ubuntu的 /bin 下建立以下几个基本命令的链接: /bin/basename->/usr/bin/basename /bin/awk->/usr/bin/gawk / ...

  7. 安装ARM交叉编译器

    1.开发平台 虚拟机:VMware 12 操作系统:Ubuntu 14.04 64bit 2.准备ARM交叉编译工具包 编译uboot和linux kernel都需要ARM交叉工具链支持,这里使用Li ...

  8. Ubuntu 12.04 64bit GCC交叉编译器制作 原创

                                                                                                        ...

  9. ubuntu 10.04安装qtcreator并汉化

    最近最的项目中需要做出来一个带有界面的demo,所以想到了用qt做个简单的demo! 于是在ubuntu上安装了qt,很简单apt-get apt-get install qtcreator 大概几百 ...

随机推荐

  1. 玩转Javascript this用法

    在web项目中Javascript是一门必须要掌握的动态语言,基于Javascript的框架大多离不开不了最基础的Javascript的用法和原理.本文主要是总结一下Javascript中那万恶的th ...

  2. socket协议和http协议性能对比

    最近做了一次队列服务的性能测试,是通过两种协议windows socket和http分别往内存中写入url.对比哪种协议的效果更高,下图是测试结果.此次使用的工具是loadrunner.在压socke ...

  3. Python开发【笔记】:“~” 按位取反运计算方法

    按位取反: 要弄懂这个运算符的计算方法,首先必须明白二进制数在内存中的存放形式,二进制数在内存中是以补码的形式存放的 原码 原码(true form)是一种计算机中对数字的二进制定点表示方法.原码表示 ...

  4. cookie.setPath()的用法

    正常的cookie只能在一个应用中共享,即:一个cookie只能由创建它的应用获得. 可在同一应用服务器内共享cookie的方法:设置cookie.setPath("/");  ( ...

  5. Web开发:URL编码与解码(转)

    原文:http://www.cnblogs.com/greatverve/archive/2011/12/12/URL-Encoding-Decoding.html 通常如果一样东西需要编码,说明这样 ...

  6. git-【六】分支的创建与合并

    在版本回填退里,已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...

  7. TCP协议通讯工作原理

    TCP协议通讯工作原理   一.TCP三次握手 传输控制协议(Transport Control Protocol)是一种面向连接的,可靠的传输层协议.面向连接是指一次正常的TCP传输需要通过在TCP ...

  8. 解决maven的依赖总是无法下载完成

    有时候在eclipse里面刚刚导进一个maven项目,但是总是无法完整下载pom文件里面的依赖 主要有两个原因: 1,需要下载的依赖(jar包)需要开发人员给权限(远程仓库的下载权限),这个可以找开发 ...

  9. 7.2 Models -- Defining Models

    一.概述 1. 模型是一个类,它定义了你呈现给用户的数据的属性和行为.用户希望如果他们离开你的应用程序,并返回后(或如果他们刷新页面)看到的任何东西应该被一个model代表. 2. 确保在ember. ...

  10. 非线性方程(组):一维非线性方程(二)插值迭代方法 [MATLAB]

    一般而言,方程没有能够普遍求解的silver bullet,但是有几类方程的求解方法已经非常清晰确凿了,比如线性方程.二次方程或一次分式.一次方程可以直接通过四则运算反解出答案,二次方程的求根公式也给 ...