gcc搭建进程图解,04搭建嵌入式交叉编译情况arm

gcc搭建进程图解,04搭建嵌入式交叉编译情况arm。64位Ubuntu
16.04搭建嵌入式交叉编写翻译境遇arm-linux-gcc进度图解,开辟裸机情状在此以前要求先搭建其付出情况,毕竟工欲善其事必先利其器嘛。 

Linux版本:Ubuntu 12.04
内核版本:Linux 3.5.0 交叉编写翻译器版本:arm-linux-gcc-4.4.3 交叉编写翻译器下载
见那篇文章http://www.linuxidc.com/Linux/2011-05/35906.htm

安装情形

参考Ubuntu
9.04下交叉编写翻译意况的创立。作者要好的PC机是Ubuntu
10.10 版本,但使用一下的秘籍也能够创立交叉编写翻译情况。

设置步骤

设置前的饶舌

       Linux本子:Ubuntu 12.04  
 内核版本:Linux 3.5.0   交叉编写翻译器版本:arm-linux-gcc-4.4.3
那么些版本的接力编写翻译器

本条点子与 TQ2440 建构交叉编写翻译4.3.3
的点子一致,都是选用制作好的接力编写翻译器

1、希图工具安装目录

先是简要介绍一下,所谓的搭建立外交关系叉编写翻译意况,即安装、配置交叉编译工具链。在该遭受下编写翻译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到对象机上。

设置前的饶舌

1. 安装规范的C开采条件,由于Ubuntu 9.04
Linux安装暗中同意是不设置的,所以须求先安装一下(假若已经设置好的话,就足避防去这一步了):
$ sudo apt-get install gcc g++ libgcc1 libg++ make gdb
如果地点这几个设置不行,可以尝试
$ sudo apt-get install build-essential  (作者利用的是其一格局)

下载 arm-linux-gcc 4.4.3
下载链接
http://www.linuxidc.com/Linux/2011-05/35906.htm

穿插编写翻译工具链是为着编写翻译、链接、管理和调理跨平台种类布局的程序代码。对于交叉开拓的工具链来讲,在文件名称上加了八个前缀,用来区分本地的工具链。比方,arm-linux-代表是对arm的陆陆续续编写翻译工具链;arm-linux-gcc表示是接纳gcc的编写翻译器。除了系统布局有关的编写翻译选项以外,其行使格局与Linux主机上的gcc同样,所以Linux编制程序技艺对于嵌入式一样适用。可是,而不是别的叁个本子拿来都能用,种种软件包往往存在版本相称难点。例如,编译内核时须要动用arm-linux-gcc-4.3.3版本的穿插编写翻译工具链,而选拔arm-linux-gcc-3.4.1的接力编写翻译工具链,则会产生编译失败。

   
首先简介一下,所谓的搭建立外交关系叉编写翻译境况,即安装、配置交叉编译工具链。在该条件下编写翻译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到对象机上。

2. 下载arm-linux-gcc-4.3.2.tgz到自由的目录下,步向这么些文件夹

将压缩包arm-Linux-gcc-4.4.3.tar.gz寄存在一个索引下,那么些目录正是你等会解压缩的目录,今后这些目录就不可小看删掉了,笔者的存放路线是/home/aldrich/arm,如下图,记住那几个门路,等会还有可能会用到。

那正是说gcc和arm-linux-gcc的分别是怎么吧?差异正是gcc是linux下的C语言编写翻译器,编写翻译出来的次序在本地实践,而arm-linux-gcc用来在linux下跨平台的C语言编写翻译器,编写翻译出来的顺序在指标机(如ARM平台)上实行,嵌入式开拓应运用嵌入式交叉编写翻译工具链。

  
交叉编写翻译工具链是为了编写翻译、链接、管理和调节和测量试验跨平台连串布局的程序代码。对于交叉开荒的工具链来讲,在文件名称上加了一个前缀,用来分别当地的工具链。举个例子,arm-linux-表示是对arm的穿插编写翻译工具链;arm-linux-gcc表示是行使gcc的编写翻译器。除了系统布局有关的编写翻译选项以外,其行使办法与Linux主机上的gcc一样,所以Linux编制程序手艺对于嵌入式同样适用。不过,并非别的贰个本子拿来都能用,各个软件包往往存在版本相配问题。比方,编译内核时须求动用arm-linux-gcc-4.3.3版本的时断时续编写翻译工具链,而选用arm-linux-gcc-3.4.1的交叉编写翻译工具链,则会招致编写翻译退步。

arm-linux-gcc-4.3.2.tgz下载在Linux公社的1号FTP服务器里,下载地址:

威尼斯赌场 1 

设置步骤

  
那么gcc和arm-linux-gcc的区分是什么吗?差别正是gcc是linux下的C语言编写翻译器,编写翻译出来的顺序在本地试行,而arm-linux-gcc用来在linux下跨平台的C语言编写翻译器,编写翻译出来的主次在目的机(如ARM平台)上实践,嵌入式开采应选拔嵌入式交叉编写翻译工具链。

——————————————分割线——————————————

  1. .tar.gz 和.tgz
  2. 解压:tar zxvf FileName.tar.gz
  3. 压缩:tar zcvf FileName.tar.gz DirName

1、将压缩包arm-linux-gcc-4.4.3.tar.gz贮存在二个目录下,这些目录便是您等会解压缩的目录,以后那些目录就不能够随意删掉了,作者的存放路线是
/home/song/software,如下图,记住这些门路,等会还有或者会用到。

设置步骤

FTP地址:ftp://ftp1.linuxidc.com

2、安装软件

威尼斯赌场 2

1、将压缩包arm-linux-gcc-4.4.3.tar.gz寄放在三个索引下,这一个目录正是你等会解压缩的目录,以后这些目录就不可忽视删掉了,我的存放路线是
/home/song/software,如下图,记住那些门路,等会还有大概会用到。

用户名:ftp1.linuxidc.com

采取tar命令:tar zxvf
arm-linux-gcc-4.3.2.tgz将software文件夹下的arm-linux-gcc-4.3.2.tgz解压缩安装到当前目录。通过下图能够看见解压成功了,况兼解压后的文本贮存在了

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

   威尼斯赌场 3

密码:www.linuxidc.com

  1. /home/aldrich/arm/arm-linux-gcc-4.3.2

威尼斯赌场 4

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

在 2011年LinuxIDC.com\4月\Ubuntu 10.10 构建交叉编写翻译工具4.3.2

文件夹下,如下图所示,这么些存放路线可得记住,如下图

因而下图能够看来解压成功了,并且解压后的文书存放在了/home/song/software/opt/FriendlyARM/toolschain/4.4.3文件夹下,如下图所示,那么些寄存路径可得记住,如下图

    威尼斯赌场 5

下载方式见
http://www.linuxidc.com/Linux/2013-10/91140.htm

威尼斯赌场 6 

威尼斯赌场 7

   
通过下图能够看来解压成功了,何况解压后的公文寄存在了/home/song/software/opt/FriendlyARM/toolschain/4.4.3文件夹下,如下图所示,那一个存放路线可得记住,如下图

——————————————分割线——————————————

3、配置种类意况变量

3、接下去配置系列景况变量,把交叉编写翻译工具链的路线增多随地境变量PATH中去,那样就能够在任何目录下选用这一个工具。记下上一步中的安装路线,使用命令:vim
/etc/profile 编辑profile文件,增添情形变量。

   威尼斯赌场 8

$ sudo tar xvzf arm-linux-gcc-4.3.2.tgz –C /
留意:C 后边有个空格,而且 C 是大写的,它是乌Crane语单词“Change”的率先个假名,
在此是改换目录的情致。
试行该命令,将把 arm-linux-gcc 安装到/usr/loca/arm/4.3.2 目录。

布局情形前先坐下普遍:

威尼斯赌场 9

3、接下去配置连串境况变量,把交叉编写翻译工具链的门道增多到情形变量PATH中去,那样就足以在别的目录下行使这几个工具。记下上一步中的安装路线,使用命令:vim
/etc/profile 编辑profile文件,增加景况变量。

  1.  修改情状变量,把交叉编写翻译器的不二等秘书籍到场到PATH。
    办法一:修改/etc/bash.bashrc文件(此文件只对当下客户适用)
    $sudo gedit /etc/bash.bashrc
    在最终加上export PATH=$PATH:/usr/local/arm/4.3.2/bin
    方法二:修改/etc/profile文件(此文件属于系统品级的境况变量,设置在里面包车型大巴东西对持有客商适用):
    $sudo gedit /etc/profile
    追加路线设置,在最后增添如下,保存/etc/profile文件:
    export PATH=$PATH:/usr/local/arm/4.3.2/bin

Ubuntu不相同目录下profile与bashrc的区分

在profile中最终一行加多: export
PATH=$PATH:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin
那个门路就是可怜bin目录所在的门道,或许您的不一样等,依照你其实的目录填就足以了,如下图32行

    威尼斯赌场 10  

办法三:修改/etc/environment文件 (使用的是这种方法)
$sudo gedit /etc/environment

/etc/profile 
此文件为系统的各种顾客设置条件消息,当客户率先次登陆时,该公文被推行,并从/etc/profile.d目录的安插文件中搜罗shell的装置。

威尼斯赌场 11

   在profile中最终一行增多:  export
PATH=$PATH:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin
 这些门路便是特别bin目录所在的门径,恐怕您的差异,依据你其实的目录填就足以了,如下图32行

原来的文章件应该为PATH=”/usr/local/sbin:/usr/local/bin:/usr
/sbin:/usr/bin:/sbin:/bin:
/usr/games“将其改为PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin”保存退出就可以

/etc/bash.bashrc  为每贰个运维bash
shell的客商实行此文件,当bash shell被张开时,该文件被读取。

编制完保存就好了

   威尼斯赌场 12

4. 即时使新的情况变量生效,不用重启计算机:
对应方法一:$ source /root/.bashrc
对应方法二:$ source /etc/profile
办法三即时生效

~/.bash_profile 
每一种顾客都可使用该文件输入专项使用于本身行使的shell音讯,当客户登入时,该文件仅仅施行三遍,暗许情状下,他安装有个别遭受变量,试行客商的.bashrc文件。

4、使用命令:source /etc/profile 使情形变量生效

   编写完保存就好了

5. 检查是或不是将路径参预到PATH:
   $ echo $PATH
来得内容/usr/local/sbin:/usr
/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr
/games:/usr/local/arm/4.3.2/bin
表达已经将接力编写翻译器的渠道参与PATH。至此,交叉编写翻译情形设置实现。

~/.bashrc  该托特满含专用于你的bash
shell的bash新闻,当登入时以及历次展开新的shell时,该公文被读取。

5、在终点上输入指令 arm-linux
再按Tab键,能够看来下图,表达意况变量设置成功了

4、使用命令:source /etc/profile 使情形变量生效

威尼斯赌场 13

~/.bash_logout 
当每便退出系统(退出bash shell)时,试行该文件。

威尼斯赌场 14

5、在顶峰上输入指令  arm-linux
再按Tab键,能够看见下图,表达情况变量设置成功了

另外,/etc/profile中设定的变量(全局)的能够作用于别的客户,而~/.bashrc等中设定的变量(局地)只可以承继/etc/profile中的变量,他们是”老爹和儿子”关系。

6、使用命令: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

   威尼斯赌场 15

~/.bash_profile威尼斯赌场 ,  是交互式、login
格局步入 bash 运维的。

威尼斯赌场 16

6、使用命令: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

~/.bashrc  是交互式 non-login
方式步入 bash 运转的。

说是现身这种主题素材的始末是由于Ubuntu12.04用的是六10个人的,消除办法就是利用命令:sudo
apt-get install ia32-libs 装一些三九人的库

   威尼斯赌场 17

平时性二者设置差十分的少同样,所以普通前面二个会调用前者。

威尼斯赌场 18

 
说是出现这种主题素材的原故是由于Ubuntu12.04用的是陆12人的,消除情势便是行职务令:sudo
apt-get install ia32-libs 装一些三十一位的库

接下去配置类别意况变量,把交叉编写翻译工具链的路径增加随意况变量PATH中去,那样就可以在别的目录下行使这几个工具。记下上一步中的安装路线,使用命令:vim
 /home/aldrich/.bashrc 编辑.bashrc文件,增添意况变量。

7、待安装完34个人的库之后,再使用命令:arm-linux-gcc
-v,这一遍就成功了,如下图

   威尼斯赌场 19

在该公文中最终一行加多:

威尼斯赌场 20

   假如您利用的是ubuntu16.04的版本也会出现6个中的这种难点,并且采纳sudo
apt-get install ia32-libs不可能消除此主题素材难题如下所示(2017.9.8):

  1. export PATH=$PATH:/home/aldrich/arm/arm-linux-gcc-4.3.2/bin

8、验证,编写翻译几个hello.c文件

   威尼斯赌场 21意思是说16.04本子的ubuntu已经不采用ia32-libs库了能够使用别的八个代表。

这些门路正是极度bin目录所在的路径,或者您的分化等,依照你其实的目录填就可以了,如下图

威尼斯赌场 22

sudo apt-get install lib32ncurses5 lib32z1

威尼斯赌场 23 

应用命令:arm-linux-gcc hello.c -o hello 看是不是编写翻译成功

   那样大家就化解了arm-linux-gcc编写翻译器的主题素材。

编写完保存就好了

威尼斯赌场 24

7、待安装完31位的库之后,再使用命令:arm-linux-gcc
-v,那贰回就成功了,如下图

4、使情形变量生效

看得出成功生成了二进制文件。

   威尼斯赌场 25

应用命令:source
 /home/aldrich/.bashrc 使意况变量生效

越来越多Ubuntu相关新闻见Ubuntu 专项论题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

8、验证,编写翻译二个hello.c文件

5、检查碰着变量是还是不是设置成功

威尼斯赌场 26

  威尼斯赌场 27

在终点上输入指令 arm-linux
再按Tab键,能够看看下图,表达意况变量设置成功了

  使用命令:arm-linux-gcc hello.c -o hello 看是否编写翻译成功

威尼斯赌场 28 

  威尼斯赌场 29

6、安装叁十五人库包容包

  可知成功生成了二进制文件。   

输入指令后,出现下边包车型地铁不当提示音信:

  备注2017.9.8(依然编写翻译的主题素材,在编写翻译进度中出现了如下的一无所长,ubuntu的本子是16.04的本子)

  1. /home/aldrich/arm/arm-linux-gcc-4.3.2/bin/arm-linux-gcc:
  2. line 3:
  3. /home/aldrich/arm/arm-linux-gcc-4.3.2/bin/arm-none-linux-gnueabi-gcc:No such file or directory

  威尼斯赌场 30

威尼斯赌场 31 

  上述结果提醒说缺乏了libstdc++的库,这里大家选用命令来设置就好了:

实属出现这种难题的来头是由于Ubuntu16.04用的是陆拾壹个人的,按从前的消除格局正是选取命令:

sudo apt-get install lib32stdc++6

sudo apt-get install ia32-libs
装一些32位的库

  安装完以往我们就能够准确的选用arm-linux-gcc的时断时续编写翻译器了

威尼斯赌场 32 

  威尼斯赌场 33

出现上述分界面是因为Ubuntu16.04本子已不协理ia32-libs的软件包,而是使用了lib32ncurses5、lib32z1软件包做为代替,所以在Ubuntu16.04本子在那之中应该安装实行:

  转发链接:

  1. sudo apt-get install lib32ncurses5 lib32z1

 
这里是一贯利用crosstools工具包的秘诀来搭建的交叉编写翻译遇到(还未测量检验):

待安装完34位的库之后,再使用命令:arm-linux-gcc
-v,这一回就打响了,如下图

威尼斯赌场 34 

8、交叉编写翻译工具验证

编写翻译一个hello.c文件

  1. #include<stdio.h>
  2. int main()
  3. {
  4. printf("hello world!\n");
  5. }

选拔命令:arm-linux-gcc hello.c -o hello
看是或不是编写翻译成功

威尼斯赌场 35 

可见成功生成了二进制文件,至此,交叉编写翻译工具就安顿达成了。

Ubuntu
16.04上安装arm-linux-gcc-4.4.3 http://www.linuxidc.com/Linux/2016-07/133746.htm

正文恒久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138771.htm

威尼斯赌场 36

admin

网站地图xml地图