Ubuntu分步构建交叉编译链记录(一)

如果我的记录有错误,请及时提醒!谢谢

跟着书操作,版本太老出现很多问题,所以到后面直接抄书上步骤了,目的就是了解一下交叉编译链的构建过程

1.什么是交叉编译工具

        交叉开发工具链可以实现编译、链接、处理或者调试等功能,可以在linux主机上编译生成ARM、MIPS等架构上运行的程序

2.常用的工具链软件

        Binutils:二进制处理工具,包括连接器、汇编器等目标程序处理工具

        GCC:支持C/C++语言编译和Java等编程语言

        Glibc:应用程序编程的函数库软件包,可以编译生成静态库和共享库

        Gdb:调试工具,对程序源码进行调试

3.需要准备的安装包

        安装包下载地址:

        kernel下载地址:The Linux Kernel Archives

点进去找到和你主机系统一样的内核版本(这里我也不清楚其它版本会不会出现什么问题,具体可以自己试试)

         GCC Glibc binutils gdb下载地址:ftp://ftp.gnu.org/gnu/

        进入网站找到gcc、glibc对应的版本稍微新一点的

正文开始

1.建立工作目录

        工作目录是我自定义的命令如下:

                        cd /; sudo mkdir arm;

                        cd arm; sudo mkdir armlinux

                        cd armlinux; sudo mkdir build-tools kernel tool

         目录作用如下

                        build-tools: 存放binutils gcc glibc 等源代码和用来编译源代码的目录

                        kernel:存放内核源代码

                        tools:用来存放编译好的交叉编译工具和库文件

2.建立环境变量

               需要定义经常使用的路径,避免重复冗长命令。我是写到 /etc/profile 里面了,也可以直接                 export ,或者写到bashrc上去。具体区别如下:

                a.写到profile里无论是通过控制台还是图形界面启动程序,都会自动执行该文件

                b.写到bshrc里,通过shell启动程序会加载,通过图形界面环境启动是,这些环境变量不                       可用

                c.export声明的变量是临时变量,注销或者更换控制台这些变量就不存在了

                命令如下

                        sudo gedit /etc/profile 或者 sudo vim /etc/profile

                在文件最后一行加入:

                  保存,输入source /etc/profile 会立即生效,不然只能在下次登录时环境变量生效

 3.编译、安装Binutils

         这是我安装binutils出现的问题:

                

 为了确保安装过程不出现问题:

        a.首先更新以下make,我是手动下载

      b.然后安装texinfo

        输入:sudo apt-get install texinfo        

现在开始安装binutil-2.38,输入下面命令

        

 安装成功显示:

 解释configure:configure原理 - bw_0927 - 博客园

--target:指定生成的是arm-linux工具

--prefix:指出可执行文件安装的位置

 4.获得内核头文件      

        把下载的linux-4.9..229.tar.gz放到创建的kernel目录下,解压

        ARCH=arm: 表示以arm体系结构,不写默认是CPU的结构

        CROSS_COMPILE=arm-linux- :表示以arm-linu-为前缀的交叉编译器

         显示,安装蓝色的部分按enter键,选择处理器的类型,因为我没有板子哈哈哈,只能照着书上写的选,板子在心中。

 

 5.编译安装boot-trap gcc

        目的:建立arm-linux-gcc工具(现在这个gcc没有glibc的支持)

        命令如下:

 emm最后发现要修改的t-linux文件找不到,所以又下了一个老版本

 然后输入:

         第一次安装ARM交叉编译工具,没有支持glibc库的头文件,需要修改t-linuxwen文件,加入些参数,屏蔽使用头文件,否则默认使用/usr/include头文件

 

         还是失败,你会发现你当前系统的gcc版本大于这个gcc版本,编译的时候报错,很多函数的宏定义已经变了,试了好几个版本都有不同问题所以决定跳过。。。反正只是了解过程

        安装完成后,在/arm/armlinux/tools/bin下查看,arm-linu-gcc等工具是否以及生成

6.建立glibc

        解压下载的glibc-2.3.2.tar.gz  glibc-;inuxthreads-2.3.2.tar.gz

        

7.编译安装完整gcc

        安装glibc后,需要重新编译来支持交叉glibc,和同时让它支持c++语言

 8.制作交叉调试器        

        下载gdb-6.5安装包

        输入命令:

     

        

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值