Ubuntu 嵌入式交叉编译环境搭建

在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译,这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码,而这种工具就是交叉编译器(cross compiler)。

操作方法

  • 01

    安装前的絮叨,首先简单介绍一下,所谓的搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到目标机上。 交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。对于交叉开发的工具链来说,在文件名称上加了一个前缀,用来区别本地的工具链。例如,arm-linux-表示是对arm的交叉编译工具链;arm-linux-gcc表示是使用gcc的编译器。除了体系结构相关的编译选项以外,其使用方法与Linux主机上的gcc相同,所以Linux编程技术对于嵌入式同样适用。不过,并不是任何一个版本拿来都能用,各种软件包往往存在版本匹配问题。例如,编译内核时需要使用arm-linux-gcc-4.3.3版本的交叉编译工具链,而使用arm-linux-gcc-3.4.1的交叉编译工具链,则会导致编译失败。 那么gcc和arm-linux-gcc的区别是什么呢?区别就是gcc是linux下的C语言编译器,编译出来的程序在本地执行,而arm-linux-gcc用来在linux下跨平台的C语言编译器,编译出来的程序在目标机(如ARM平台)上执行,嵌入式开发应使用嵌入式交叉编译工具链。

  • 02

    将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是 /home/song/software,如下图,记住这个路径,等会还会用到。

  • 03

    使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz将software文件夹下的arm-linux-gcc-4.4.3.tar.gz解压缩安装到当前目录下如下图

  • 04

    通过下图可以看到解压成功了,并且解压后的文件存放在了/home/song/software/opt/FriendlyARM/toolschain/4.4.3文件夹下,如下图所示,这个存放路径可得记住,如下图

  • 05

    接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。记下上一步中的安装路径,使用命令:vim /etc/profile 编辑profile文件,添加环境变量。

  • 06

    在profile中最后一行添加:export PATH=$PATH:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin这个路径就是那个bin目录所在的路径,可能你的不一样,按照你实际的目录填就可以了,如下图32行, 编写完退出并保存

  • 07

    使用命令:source /etc/profile 使环境变量生效

  • 08

    在终端上输入命令arm-linux再按Tab键,可以看到下图,说明环境变量设置成功了

  • 09

    使用命令:arm-linux-gcc -v 会出现下面的错误提示:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: exec: /home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found

  • 10

    意思是出现这种问题的原因是由于Ubuntu12.04用的是64位的,解决方法就是使用命令:sudo apt-get install ia32-libs 装一些32位的库。

  • 11

    待安装完32位的库之后,再使用命令:arm-linux-gcc -v,这一次就成功了,如下图

  • 12

    验证,编译一个hello.c文件

  • 13

    使用命令:arm-linux-gcc hello.c -o hello 看是否编译成功 可见成功生成了二进制文件。

  • 14

    总结:其实在安装过程中,会出现各种各样的错误,一般就是库文件安装不完整,大家可以把错误信息直接复制,到网上搜索一下,一般都能解决,这里希望大家在学习Linux时多一点耐心。

(0)

相关推荐

  • ubuntu+nginx+php环境搭建方法分享

    系统环境:Ubuntu 13 和 Linux Mint 15都通过。 默认安装的是nginx 1.2.5,php5.4.9 先安装: 复制代码 代码如下: sudo apt-get install n ...

  • Ubuntu 9.10下搭建LAMP服务器完全图解教程

    最近想修改一下Wordpress的模板,所以还是要在本地建一个LAMP环境调试比较方便,简单记录一下,给需要的朋友做个参考。 其实在本站有许多关于在Ubuntu Linux下搭建LAMP服务器的相关资 ...

  • windows gtk+开发环境搭建方法详解(图解)

    GTK+开发环境搭建 “工欲善其事,必先利其器”首先介绍一下GTK+开发环境的搭建,网上很多所谓的GTK的开发环境的搭建基本都是抄来抄去,也不知道有没有人使用他们介绍的方法搭建并编译成功,很不幸的是我 ...

  • arm-linux-gcc交叉编译环境的安装

    对于学习基于linxu系统的嵌入式开发人员来说,在主机上构建交叉编译环境是必不可少的一步,构建完成后才能将电脑中的程序编译并导入开发板中使用,这里介绍如何在linux系统中安装arm-linux-gc ...

  • Myeclipse9 JBPM4.4 环境搭建图文教程

    要进行jbpm的开发,我们使用eclipse开发。下面逐步介绍环境搭建过程,首先看一下用的软件。 JBPM4.4.zip下载地址:http://sourceforge.net/projects/jbp ...

  • win7下PHP运行环境搭建(apache2+mysql+php)

    PHP版本:php-5.3.2-Win32-VC6-x86,VC9是专门为IIS定制的,VC6 是为了其他WEB服务软件提供的,如 Apache。我下载的是ZIP包 下载地址 Mysql版本:Wind ...

  • swift语言开发用什么软件?swift语言开发编程环境搭建教程详情

    swift语言开发用什么软件呢?自从苹果wwdc2014大会上推出swift语言之后,程序猿们就开始转战开发苹果软件;但是swift语言开发编程环境怎么搭建呢?我们一起来了解一下,希望可以对大家有所帮 ...

  • Linux下Android开发环境搭建详细步骤

    Linux下Android开发环境搭建详细步骤

  • android ndk环境搭建详细步骤

    本文主内容: 1、Android NDK 安装 2、安装Cygwin与使用NDK编译 3、在Eclipse中集成C/C++开发环境CDT 4、安装Sequoyah插件 5、JNI编译环境配置 本文建立 ...