zoukankan      html  css  js  c++  java
  • crosstool-ng编译交叉工具链【转】

    转自:https://www.cnblogs.com/kele-dad/p/6697155.html?utm_source=itdadao&utm_medium=referral

    一、准备工作

    1. 建立工作文件夹

    2.下载crosstool-ng

    1
    git clone https://github.com/crosstool-ng/crosstool-ng

     

    crosstool-ng的环境需要libncurse5-dev 

    1
    sudo apt-get install libncurse5-dev

     3.安装

    1
    安装autoconf:  sudo apt-get install autoconf<br>进入crosstool-ng目录,执行./bootstrap,生成 configure 执行文件<br><br>检查安装环境,报什么错,就安装什么软件:
    ./configure --prefix=`pwd`/crosstool

    需要的软件有:sudo apt-get install gperf bison flex texinfo help2man gawk

    执行命令 make
    执行命令 make instal
    export PATH="${PATH}:`pwd`/crosstool/bin"

    二、编译链制作

    1.根目录下建立三个文件夹

    mkdir src x-tools crosstool

    进入crosstool目录:

    cd ~/.crosstool

    1
    执行:ct-ng list-samples

     

    1
    ct-ng show-arm-cortexa9_neon-linux-gnueabihf

     

    1
    ct-ng arm-cortexa9_neon-linux-gnueabihf

     

    1
    ct-ng menuconfig

       Target options  --->     从datasheet中的 BLOCK DIAGRAM 中可以看到
               *** Target optimisations ***
               (armv7-a) Architecture level :指令集架构,exynos4412为armv7-a架构,-march=name
               (cortex-a9) Emit assembly for CPU  :CPU核心类型,  -mcpu=name
               (cortex-a9) Tune for CPU:对CPU的优化,具体可以查看芯片手册,-mtune=name

      这些参数都可以gcc里面对应,man gcc然后查找关键字即可

    工具链的分类:http://blog.csdn.net/ccskyer/article/details/16864173

    kernel下载:https://www.kernel.org/pub/linux/kernel/v4.x/

    gcc-linaro下载:http://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/

    其他工具下载:http://ftp.gnu.org/gnu/

    执行编译命令:ct-ng build,开始进行工具链的构建:

    2. 编译完成

    1
    ls ~/x-tools/arm-cortexa9_neon-linux-gnueabihf/

     

    建立环境变量:

    1
    2
    PATH=~/x-tools/arm-cortexa9_neon-linux-gnueabihf/bin:$PATH/
    arm-cortexa9_neon-linux-gnueabihf-gcc -v

     

    3.编译内核

    1
    make ARCH=arm CROSS_COMPILE=arm-cortexa9_neon-linux-gnueabihf- exynos_defconfig

     

    1
    exynos_defconfig是内核自带的配置文件,具体目录在 /arch/arm/config/ 目录中
    1
    make ARCH=arm CROSS_COMPILE=arm-cortexa9_neon-linux-gnueabihf- zImage modules

     

    三、报错

    1. build failed int step 'Retrieving needed toolchain components' tarballs'

      查看log可知道,isl下载出错,进行手动下载:http://isl.gforge.inria.fr/

      然后重新编译。

    gcc-linaro-6.3-2017.02.tar.xa:http://releases.linaro.org/components/toolchain/gcc-linaro/6.3-2017.02/

  • 相关阅读:
    模板与继承之艺术——空基类优化
    模板的多态(静多态)威力
    Linux在vi编辑模式下如何查找
    PHP var_dump() 函数
    PHP empty() 函数
    IOS连接代理后自动关闭
    charles:屏蔽web网页的抓包信息(proxy)
    Python-unittest单元测试框架总结
    fiddler过滤域名:仅显示指定的域名
    Java中System.getProperties()方法获取的系统属性
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/13520249.html
Copyright © 2011-2022 走看看