交叉编译详解 二 从零制作交叉编译链

编译环境

主机硬件环境:

    $ uname -a
    Linux PC 4.4.0-42-generic #62-Ubuntu SMP Fri Oct 7 23:11:45 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

主机软件环境:

    $ cat /etc/issue
    Ubuntu 16.04.1 LTS

需要安装的工具:

    sudo apt-get install libncurses5-dev
    sudo apt-get install gperf
    sudo apt-get install bison
    sudo apt-get install flex
    sudo apt-get install texinfo
    sudo apt-get install help2man
    sudo apt-get install gawk
    sudo apt-get install libtool
    sudo apt-get install libtool-bin
    sudo apt-get install automake

libncurses5-dev: developer’s libraries for ncurses(执行 make menuconfig 时需要)

gperf: 一个完美的hash函数生成器。例子可以看这个帖子:
gperf 使用实例

bison: 一个语法分析器生成器。Bison 把一个关于“向前查看 从左到右 最右”(LALR) 上下文无关文法的描述转化成可以分析该文法的 C 或 C++ 程序。它也可以为二义文法生成 “通用的 从左到右 最右” (GLR)语法分析器

flex: 词法分析器

texinfo: 是Linux系统提供的另外一种格式的帮助信息。和man相比,textinfo具有更好交互功能。它支持链接跳转功能,通常使用info和pinfo命令来阅读textinfo文档

help2man: 一个可以自动为我们的程序生成man手册的工具

gawk: linux下用于查找替换的文本工具

libtool / libtool-bin: Generic library support script

automake: Tool for generating GNU Standards-compliant Makefiles

备注:

  • 不同的环境需要安装的工具不完全一致,出错时可以根据错误提示来排查
  • 各种工具的描述可以使用 apt-cache search XXX 命令去查询

配置全局变量

    export PRJROOT=/home/user/tool_prj1         # 修改为自己的工程所在的目录
    export TARGET=arm-none-linux-gnueabi
    export PREFIX=${PRJROOT}/tool-chain
    export TARGET_PREFIX=${PREFIX}/${TARGET}
    export PATH=${PREFIX}/bin:${PATH}
    export ARCH=arm
    export BINUTILS_VERSION=binutils-2.27
    export GCC_VERSION=gcc-5.4.0
    export GLIBC_VERSION=glibc-2.23
    export KERNEL_VERSION=linux-4.4.25

目录结构

    $ tree -L 2
    tool_prj1
    ├── build                       # src的编译目录
    ├── script                      # 脚本工具目录
    │   ├── toolchain_build.sh        # 自己写的自动化编译脚本,后续的命令都集成在了这个脚本中
    │   └── toolchain_config.lst      # 用于配置全局变量
    ├── setup                       # 保存下载的源码包
    │   ├── binutils-2.27.tar.bz2
    │   ├── gcc-5.4.0.tar.bz2
    │   ├── glibc-2.23.tar.bz2
    │   └── linux-4.4.25.tar.xz
    ├── src                         # 解压后的源码文件
    └── tool-chain                  # 工具链安装位置

源码包下载


                
  • 17
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值