转:http://blog.csdn.net/nokiaguy/article/details/8509739

X86架构的CPU采用的是复杂指令集(Complex Instruction Set Computer,CICS),而ARM架构的CPU使用的是精简指令集(Reduced Instruction Set Computer,RISC)。由于这两种架构的CPU使用了不同的指令集,因此在X86架构上开发可运行在ARM架构上的程序就必须要使用交叉编译器。 通常交叉编译器和相关工具包含的了很多可执行文件以及大量的共享库及头文件等资源。这些资源的集合称为交叉编译环境。

在Internet上可以找到集成好的交叉编译环境,Android NDK和Android源代码中也包含的交叉编译环境。当然,如果我们需要一个完全独立的交叉编译环境,可以下载集成好的交叉编译环境,也可以自己制作 (比较复杂,建议读者下载集成好的交叉编译环境)。下面介绍一个CodeSourcery交叉编译环境,这个交叉编译环境直接下载安装就可以安装。

读者可通过如下的网站访问CodeSourcery下载页面。

http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/

上面的页面并未直接提供CodeSourcery的下载链接,读者可以点击“Download the GNU/Linux Release”链接,并输入Email(建议使用Gmail)、地址等信息,最后点击“Get Lite!”按钮提交信息。如图2-29所示。最后系统会将下载地址发送到刚才输入的Email。

进入下载页面,会看到如图2-30所示的不同版本的下载链接,选择最新的版本即可。

图2-30  CodeSourcery的不同版本

进入CodeSourcery的下载页面后,会看到如图2-31所示的下载链接。目前CodeSourcery有Windows和Linux两个版本。本书使用的是第1个(IA32 GNU/Linux Installer)。

Linux版本的安装文件是bin格式,读者可执行下面的命令安装CodeSourcery。其中package表示CodeSourcery的安装文件名。

sh package.bin

执行上面的命令后,会显示可视化的安装界面,如图2-32所示,读者可按提示安装CodeSourcery。

为了使用方便,建议读者将如下路径加到PATH环境变量中。

   /root/compilers/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin
    安装信息:

Product Name:     Sourcery CodeBench Lite for ARM GNU/Linux
   Install Folder:   /home/liulipeng/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux
   Link Folder:      /home/liulipeng/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux
   Disk Space Information (for Installation Target):      Required: 387,119,237 bytes     Available: 435,517,399,040 bytes

下面编写一个简单的C程序来测试一下这个交叉编译环境。

  1. //first.c
  2. #include <stdio.h>
  3. int main()
  4. {
  5. printf("first arm program\n");
  6. return 0;
  7. }

输入下面的命令编译first.c文件(需要加-static选项)。

# arm-none-linux-gnueabi-gcc -static -o first first.c

输入下面的命令将first文件上传到任意的Android设备的/data/local目录中(没有root权限也可以)。

# adb push first /data/local

使用adb shell命令进入Android设备的控制台,并进入/data/local目录,执行如下的命令

# ./first

执行上面的命令就会输出“first arm program”信息。first程序在X86架构上运行的Ubuntu Linux中是无法运行的。读者可以试着在Ubuntu Linux中运行first程序,看看会发生什么。


意:在安装Code Sourcery的过程中会在/lib目录寻找一个libc.so.6库文件,但在Ubuntu
Linux11.04及以上版本/lib目录已经没有libc.so.6库文件了。这个库文件被放在了其他的目录。在32位的Ubuntu
Linux中该文件的路径是/lib/i386-linux-gnu/libc.so.6,在64位的Ubuntu
Linux中该文件的路径是/lib/x86_64-linux-gnu/libc.so.6。在安装Code
Sourcery之前可以使用ln命令为libc.so.6文件在/lib目录建立一个链接。

安装C/C++交叉编译环境的更多相关文章

  1. Ubuntu 16.04 安装 arm-linux-gcc 嵌入式交叉编译环境 问题汇总

    闲扯: 实习了将近半年一直在做硬件以及底层的驱动,最近要找工作了发现了对linux普遍要求很高,而且工作岗位也非常多,所以最近一些时间在时不时地接触linux. 正文:(我一时兴起开始写博客,准备不充 ...

  2. ubuntu QT安装以及配置交叉编译环境

    我的环境:ubuntu14.04  64位 1.下载Qt: 上网搜索 qt-opensource-linux-x64-5.3.0.run下载有好多百度云盘 要么在官网下载追新版本http://down ...

  3. codeSourcery交叉编译环境

    arm-none-Linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具.可用于交叉编译ARM系统中所有环节的代码,包括 ...

  4. arm汇编--ubuntu12.04 安装arm-linux交叉编译环境

    1. 安装标准的C开发环境,由于Ubuntu安装默认是不安装的,所以需要先安装一下:sudo apt-get install gcc g++ libgcc1 libg++ make gdb 2.从ft ...

  5. PC机安装Qt以及QT交叉编译环境 分类: OpenCV ZedBoard shell ubuntu Eye_Detection 2014-11-08 18:57 246人阅读 评论(0) 收藏

    PC: apt-get install qtcreator Qt Embedded for ZedBoard: 下载qt-everywhere-opensource-src-4.7.3.tar.gz, ...

  6. MinGW32和64位交叉编译环境的安装和使用

    原文出处: CompileGraphics Magick, Boost, Botan and QT with MinGW64 under Windows 7 64 http://www.kinetic ...

  7. (笔记)Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境)

    参考了前人的成果,结合自己实践,arm-linux-gcc-4.4.3.tar.gz的下载地址为:http://ishare.iask.sina.com.cn/f/13836544.html?from ...

  8. Linux 14.04lts 环境下搭建交叉编译环境arm-linux-gcc-4.5.1

    交叉编译工具链是为了编译.链接.处理和调试跨平台体系结构的程序代码,在该环境下编译出嵌入式Linux系统所需要的操作系统.应用程序等,然后再上传到目标板上. 首 先要明确gcc 和arm-linux- ...

  9. Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程)

    Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级 ...

随机推荐

  1. 推荐系统 SVD和SVD++算法

    推荐系统 SVD和SVD++算法 SVD:   SVD++: [Reference] 1.SVD在推荐系统中的应用详解以及算法推导 2.推荐系统——SVD/SVD++ 3.SVD++ 4.SVD++协 ...

  2. Android之listview运用(美团美食列表)

    首先我们将listview简单实现,有图形,有文字:效果如图 之前我们完成了一个较为简单的listview视图列表,但是生活中我们往往碰到的 是更为复杂列表,有图像有评分标准,不如我们来试一试手,做一 ...

  3. SQL Server 表分区之水平表分区

    什么是表分区? 表分区分为水平表分区和垂直表分区,水平表分区就是将一个具有大量数据的表,进行拆分为具有相同表结构的若干个表:而垂直表分区就是把一个拥有多个字段的表,根据需要进行拆分列,然后根据某一个字 ...

  4. Win10下Clion配置opencv3

    本人不想在爱机装一个vs2013或者vs2015这种庞然大物,可是手头要弄一个基于windows的opencv项目,就只好装了个Clion,期间踩了不少坑,记录一下. 参考网址:http://www. ...

  5. 【Algorithm】冒泡排序

    一. 算法描述 冒泡排序思想:依次比较相邻的数据,将小数据放在前,大数据放在后:即第一趟先比较第1个和第2个数,大数在后,小数在前,再比较第2个数与第3个数,大数在后,小数在前,以此类推则将最大的数& ...

  6. SQL 给字符串补0

    第一种方法: right('00000'+cast(@count as varchar),5) 其中'00000'的个数为right函数的最后参数,例如这里是5,所以有5个0 @count就是被格式化 ...

  7. Python 图像下载解决图像损坏

    在下载图片的过程中,经常会发现图片损坏,下面提供了两种解决方法: 方法一: if response.status_code == 200: print '======================= ...

  8. 从github下载某个git库的4种方法[zz]

    以gerrit-trigger-plugin为例,下面的链接都是从相应页面上直接拷贝的. 法一:不用github的账号,打开这个库在github上的主页,运行下面命令即可 read only 运行命令 ...

  9. Ucloud的自主研发的检测主机是否被入侵的agent

    wget --timeout 3 -t 2 http://download.uhostsec.service.ucloud.cn:8090/ucloud-secagent-install.sh -O ...

  10. win 7 下合并多个表格

    首先我这里从服务器上下载了一大堆的表格 分类放好之后 这里我们需要把每一类的表格合并成一张表格 这里我们使用win 7下的copy的命令 这里我的表格的格式是csv 使用cmd 我们先cd到你的表格的 ...