1.下載crosstool-ng(本人使用crosstool-ng-1.22.0.tar.gz版本)html
http://crosstool-ng.org/download/crosstool-ng/linux
2.平臺:PC虛擬機Centos6.9,板子是nuc972redis
3.首先要在非root下進行操做bash
4.用 tar 解壓crosstool-ng-1.22.0.tar.gz架構
而後 ./configure (能夠用--prefix=xxx 指定目錄) ,make && make install工具
成功顯示:ui
For auto-completion, do not forget to install 'ct-ng.comp' into
your bash completion directory (usually /etc/bash_completion.d)spa
5.把安裝了的ct-ng路徑加入到PATH中(修改/etc/profile文件,並使之生效)命令行
而後 ct-ng -v查看是否加入成功,成功顯然以下htm
Built for redhat-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
6.建立一個目錄存儲配置文件mkdir cross-ng,cd cross-ng ,使用命令 ct-ng list-samples列出相近的配置文件,並用ct-ng arm-unknown-linux-gnueabi-gcc(arm-unknown-linux-gnueabi-gcc 爲 ct-ng list-samples列出的列表)在當前目錄拷貝配置文件
7.使用ct-ng menuconfig進入配置對話框,
(1)在Paths and misc options設置源文件存儲路徑與目標存儲路徑
(2)在Target options 的子目錄修改處理器架構,其餘設置能夠默認(arm926ej-s是板子的處理器架構型號)
(3)在Operating System下的Linux Kernel version 選擇Linux內核版本(此處我選擇3.10.93)
(4)在C-compiler下的gcc version 選擇gcc版本(此處我選擇4.7.4)
(5)在C-library下的glibc version選擇glibc版本(此處我選擇2.12.1)
(6)還能夠在Toolchain options下的Tuple's vendor string 修改arm-unkown-linux-gnueabi-gcc中的「unkown」
8.完成以上配置,並保存,在命令行輸入ct-ng build ,並等待完成交叉編譯工具的建立
9.經驗:使用crosstool-ng製做交叉編譯工具每每並非一路順風,其中會遇到不少問題,有些問題只須要下載某些庫就能夠解決,有些問題網上也有些經驗,也有不少問題沒有一點頭緒,每每須要根據build.log查看具體問題在哪,而後一步一步解決。有時候沒有頭緒時,更換配置選項每每能解決問題,如更改gcc版本,更改glibc版本(此處我就是經過更換gcc版本和glibc版本才最好編譯成功)。
以上,
2018-10-29