crosstool-ng-1.22.0搭建开发环境
Ubuntu16.04无法安装libtool,只能在Ubuntu14.04以下版本安装。
cp 下载/crosstool-ng-1.22.0.tar.bz2 /home/hou/
tar -xvf crosstool-ng-1.22.0.tar.bz2
cd crosstool-ng
安装一些必要的软件:
apt install gperf bison flex texinfo help2man gawk libtool libncurses5-dev
Make
./configure --prefix=/home/hou/arm/crosstool-ng-1.22.0_install

屏幕剪辑的捕获时间: 2016/5/22 11:18
sudo make install

屏幕剪辑的捕获时间: 2016/5/22 11:20
在~/.bashrc 配置ct-ng命令的环境变量
目录:

love-xin :: ~/arm/crosstool-ng-1.22.0_build % ct-ng list-steps
Available build steps, in order:
- libc_check_config
- companion_libs_for_build
- binutils_for_build
- companion_libs_for_host
- binutils_for_host
- cc_core_pass_1
- kernel_headers
- libc_start_files
- cc_core_pass_2
- libc
- cc_for_build
- cc_for_host
- libc_post_cc
- companion_libs_for_target
- binutils_for_target
- debug
- test_suite
- finish
Use "<step>" as action to execute only that step.
Use "+<step>" as action to execute up to that step.
Use "<step>+" as action to execute from that step onward.
love-xin :: ~/arm/crosstool-ng-1.22.0_build % ct-ng list-samples
Status Sample name
LN config
MKDIR config.gen
IN config.gen/arch.in
IN config.gen/kernel.in
IN config.gen/cc.in
IN config.gen/binutils.in
IN config.gen/libc.in
IN config.gen/debug.in
[G..] alphaev56-unknown-linux-gnu
[G..] alphaev67-unknown-linux-gnu
[G..] arm-bare_newlib_cortex_m3_nommu-eabi
[G..] arm-cortex_a15-linux-gnueabi
[G.X] arm-cortexa5-linux-uclibcgnueabihf
[G..] arm-cortex_a8-linux-gnueabi
[G.X] arm-cortexa9_neon-linux-gnueabihf
[G..] armeb-unknown-eabi
[G..] armeb-unknown-linux-gnueabi
[G..] armeb-unknown-linux-uclibcgnueabi
[G..] arm-unknown-eabi
[G..] arm-unknown-linux-gnueabi
[G.X] arm-unknown-linux-musleabi
[G..] arm-unknown-linux-uclibcgnueabi
[G.X] arm-unknown-linux-uclibcgnueabihf
[G..] armv6-rpi-linux-gnueabi
[G..] armv7-rpi2-linux-gnueabihf
[G..] avr
[G..] i586-geode-linux-uclibc
[G..] i586-mingw32msvc,i686-none-linux-gnu
[G..] i686-nptl-linux-gnu
[G.X] i686-w64-mingw32
[G..] m68k-unknown-elf
[G..] m68k-unknown-uclinux-uclibc
[G..] mips64el-n32-linux-uclibc
[G..] mips64el-n64-linux-uclibc
[G..] mips-ar2315-linux-gnu
[G..] mipsel-sde-elf
[G..] mipsel-unknown-linux-gnu
[G..] mips-malta-linux-gnu
[G..] mips-unknown-elf
[G..] mips-unknown-linux-uclibc
[G.X] i686-w64-mingw32,nios2-spico-elf
[G..] powerpc-405-linux-gnu
[G..] powerpc64-unknown-linux-gnu
[G..] powerpc-860-linux-gnu
[G..] powerpc-e300c3-linux-gnu
[G..] powerpc-e500v2-linux-gnuspe
[G..] powerpc-unknown-linux-gnu
[G..] powerpc-unknown-linux-uclibc
[G..] powerpc-unknown_nofpu-linux-gnu
[G.X] s390-ibm-linux-gnu
[G..] s390x-ibm-linux-gnu
[G..] sh4-unknown-linux-gnu
[G..] sparc-unknown-linux-gnu
[G.X] x86_64-w64-mingw32,x86_64-pc-linux-gnu
[G..] x86_64-unknown-linux-gnu
[G..] x86_64-unknown-linux-uclibc
[G.X] x86_64-w64-mingw32
[G..] xtensa-unknown-linux-uclibc
L (Local) : sample was found in current directory
G (Global) : sample was installed with crosstool-NG
X (EXPERIMENTAL): sample may use EXPERIMENTAL features
B (BROKEN) : sample is currently broken
love-xin :: ~/arm/crosstool-ng-1.22.0_build %
在后续的配置(和编译)之后,可以通过show-tuple,去查看到当前配置的交叉编译器是啥样的
love-xin :: ~/arm/crosstool-ng-1.22.0_build % ct-ng show-tuple
arm-cortexa9_neon-linux-gnueabihf
查看当前有哪些(默认的)示例配置,可以用:
ct-ng list-samples
查看单个的某个示例配置的核心参数,用:
ct-ng show-<sample>
love-xin :: ~/arm/crosstool-ng-1.22.0_build % ct-ng show-arm-cortexa9_neon-linux-gnueabihf
IN config.gen/arch.in
IN config.gen/kernel.in
IN config.gen/cc.in
IN config.gen/binutils.in
IN config.gen/libc.in
[G.X] arm-cortexa9_neon-linux-gnueabihf
OS : linux-4.3
Companion libs : gmp-6.0.0a mpfr-3.1.3 mpc-1.0.3 expat-2.1.0 ncurses-6.0
binutils : binutils-2.22
C compilers : gcc | 5.2.0
Languages : C,C++
C library : glibc-2.22 (threads: nptl)
Tools : gdb-7.10
love-xin :: ~/arm/crosstool-ng-1.22.0_build %

屏幕剪辑的捕获时间: 2016/5/22 12:34
iTop4412是使用cortex-a9,所以按照这个配置就OK,上面是软件要求。
可以直接去调用此配置了:
ct-ng arm-cortexa9-linux-gnueabi

屏幕剪辑的捕获时间: 2016/5/22 13:08
接下来,你就可以去进入配置:
ct-ng menuconfig

源码包下载保存路径
Paths and misc options
(${HOME}/arm/src) Local tarballs directory
工作路径
一般使用默认配置
Paths and misc options
(${CT_TOP_DIR}/.build) Working directory
目标安装路径
Paths and misc options
(${HOME}/arm/x-tools/${CT_TARGET}) Prefix directory
一些详细的配置请参考网站:
src下面主要用到linux、gcc两个安装包,这两个包比较大,可以提前下载好。其它的包自动下载。
配置好后,保存退出。执行ct-ng build编译

屏幕剪辑的捕获时间: 2016/5/22 15:06
编译详细过程:
╭─hou@love-xin ~/arm/crosstool-ng-1.22.0_build
╰─$ ct-ng build
[INFO ] Performing some trivial sanity checks
[INFO ] Build started 20160522.191913
[INFO ] Building environment variables
[EXTRA] Preparing working directories
[EXTRA] Installing user-supplied crosstool-NG configuration
[EXTRA] =================================================================
[EXTRA] Dumping internal crosstool-NG configuration
[EXTRA] Building a toolchain for:
[EXTRA] build = x86_64-pc-linux-gnu
[EXTRA] host = x86_64-pc-linux-gnu
[EXTRA] target = arm-cortexa9_neon-linux-gnueabihf
[EXTRA] Dumping internal crosstool-NG configuration: done in 0.10s (at 00:08)
[INFO ] =================================================================
[INFO ] Retrieving needed toolchain components' tarballs
[EXTRA] Retrieving 'glibc-libidn-2.22'
[INFO ] Retrieving needed toolchain components' tarballs: done in 362.72s (at 06:11)
[INFO ] =================================================================
[INFO ] Extracting and patching toolchain components
[INFO ] Extracting and patching toolchain components: done in 2.59s (at 06:13)
[INFO ] Saving state to restart at step 'libc_check_config'...
[INFO ] Saving state to restart at step 'companion_libs_for_build'...
[INFO ] =================================================================
[INFO ] Installing ncurses for build
[EXTRA] Configuring ncurses
[EXTRA] Building ncurses
[EXTRA] Installing ncurses
[INFO ] Installing ncurses for build: done in 39.95s (at 06:53)
[INFO ] Saving state to restart at step 'binutils_for_build'...
[INFO ] Saving state to restart at step 'companion_libs_for_host'...
[INFO ] =================================================================
[INFO ] Installing GMP for host
[EXTRA] Configuring GMP
[EXTRA] Building GMP
[EXTRA] Installing GMP
[INFO ] Installing GMP for host: done in 47.59s (at 07:42)
[INFO ] =================================================================
[INFO ] Installing MPFR for host
[EXTRA] Configuring MPFR
[EXTRA] Building MPFR
[EXTRA] Installing MPFR
[INFO ] Installing MPFR for host: done in 36.57s (at 08:19)
[INFO ] =================================================================
[INFO ] Installing ISL for host
[EXTRA] Configuring ISL
[EXTRA] Building ISL
[EXTRA] Installing ISL
[INFO ] Installing ISL for host: done in 33.91s (at 08:53)
[INFO ] =================================================================
[INFO ] Installing MPC for host
[EXTRA] Configuring MPC
[EXTRA] Building MPC
[EXTRA] Installing MPC
[INFO ] Installing MPC for host: done in 16.35s (at 09:09)
[INFO ] =================================================================
[INFO ] Installing expat for host
[EXTRA] Configuring expat
[EXTRA] Building expat
[EXTRA] Installing expat
[INFO ] Installing expat for host: done in 7.11s (at 09:16)
[INFO ] Saving state to restart at step 'binutils_for_host'...
[INFO ] =================================================================
[INFO ] Installing binutils for host
[EXTRA] Configuring binutils
[EXTRA] Building binutils
[EXTRA] Installing binutils
[EXTRA] Installing ld wrapper
[INFO ] Installing binutils for host: done in 199.40s (at 12:37)
[INFO ] Saving state to restart at step 'cc_core_pass_1'...
[INFO ] =================================================================
[INFO ] Installing pass-1 core C gcc compiler
[EXTRA] Configuring core C gcc compiler
[EXTRA] Building gcc
[EXTRA] Installing gcc
[EXTRA] Housekeeping for final gcc compiler
[INFO ] Installing pass-1 core C gcc compiler: done in 538.26s (at 21:46)
[INFO ] Saving state to restart at step 'kernel_headers'...
[INFO ] =================================================================
[INFO ] Installing kernel headers
[EXTRA] Installing kernel headers
[EXTRA] Checking installed headers
[INFO ] Installing kernel headers: done in 11.64s (at 22:16)
[INFO ] Saving state to restart at step 'libc_start_files'...
[INFO ] =================================================================
[INFO ] Installing C library headers & start files
[EXTRA] Configuring C library
[EXTRA] Installing C library headers
[EXTRA] Installing C library start files
[INFO ] Installing C library headers & start files: done in 23.37s (at 22:54)
[INFO ] Saving state to restart at step 'cc_core_pass_2'...
[INFO ] =================================================================
[INFO ] Installing pass-2 core C gcc compiler
[EXTRA] Configuring core C gcc compiler
[EXTRA] Building gcc
[EXTRA] Installing gcc
[EXTRA] Housekeeping for final gcc compiler
[INFO ] Installing pass-2 core C gcc compiler: done in 657.92s (at 34:06)
[INFO ] Saving state to restart at step 'libc'...
[INFO ] =================================================================
[INFO ] Installing C library
[EXTRA] Configuring C library
[EXTRA] Building C library
[EXTRA] Installing C library
[EXTRA] Configuring C library localedef
[EXTRA] Building C library localedef
[EXTRA] Installing C library locales
[INFO ] Installing C library: done in 861.70s (at 48:47)
[INFO ] Saving state to restart at step 'cc_for_build'...
[INFO ] Saving state to restart at step 'cc_for_host'...
[INFO ] =================================================================
[INFO ] Installing final gcc compiler
[EXTRA] Configuring final gcc compiler
[EXTRA] Building final gcc compiler
[EXTRA] Installing final gcc compiler
[EXTRA] Housekeeping for final gcc compiler
[INFO ] Installing final gcc compiler: done in 902.17s (at 64:39)
[INFO ] Saving state to restart at step 'libc_post_cc'...
[INFO ] Saving state to restart at step 'companion_libs_for_target'...
[INFO ] =================================================================
[INFO ] Installing expat for target
[EXTRA] Configuring expat
[EXTRA] Building expat
[EXTRA] Installing expat
[INFO ] Installing expat for target: done in 6.22s (at 66:33)
[INFO ] =================================================================
[INFO ] Installing ncurses for target
[EXTRA] Configuring ncurses
[EXTRA] Building ncurses
[EXTRA] Installing ncurses
[INFO ] Installing ncurses for target: done in 49.44s (at 67:22)
[INFO ] Saving state to restart at step 'binutils_for_target'...
[INFO ] Saving state to restart at step 'debug'...
[INFO ] =================================================================
[INFO ] Installing cross-gdb
[EXTRA] Configuring cross-gdb
[EXTRA] Building cross-gdb
[EXTRA] Installing cross-gdb
[EXTRA] Installing '.gdbinit' template
[INFO ] Installing cross-gdb: done in 197.27s (at 71:44)
[INFO ] =================================================================
[INFO ] Installing native gdb
[EXTRA] Configuring native gdb
[EXTRA] Building native gdb
[EXTRA] Installing native gdb
[INFO ] Installing native gdb: done in 184.36s (at 74:48)
[INFO ] =================================================================
[INFO ] Installing gdbserver
[EXTRA] Configuring gdbserver
[EXTRA] Building gdbserver
[EXTRA] Installing gdbserver
[INFO ] Installing gdbserver: done in 60.28s (at 75:49)
[INFO ] Saving state to restart at step 'test_suite'...
[INFO ] Saving state to restart at step 'finish'...
[INFO ] =================================================================
[INFO ] Cleaning-up the toolchain's directory
[INFO ] Stripping all toolchain executables
[EXTRA] Installing the populate helper
[EXTRA] Installing a cross-ldd helper
[EXTRA] Creating toolchain aliases
[EXTRA] Removing access to the build system tools
[EXTRA] Removing installed documentation
[INFO ] Cleaning-up the toolchain's directory: done in 3.83s (at 77:27)
[INFO ] Build completed at 20160522.203639
[INFO ] (elapsed: 77:26.35)
[INFO ] Finishing installation (may take a few seconds)...
[77:27] / % ╭─hou@love-xin ~/arm/crosstool-ng-1.22.0_build
╰─$
添加环境变量:
sudo vim ~/.bashrc
在PATH变量中添加:${HOME}/arm/x-tools/arm-cortexa9_neon-linux-gnueabihf/bin
刷新:
source ~/.bashrc

屏幕剪辑的捕获时间: 2016/5/22 21:01
love-xin :: ~/arm/crosstool-ng-1.22.0_build » arm-cortexa9_neon-linux-gnueabihf-gcc --version
arm-cortexa9_neon-linux-gnueabihf-gcc (crosstool-NG crosstool-ng-1.22.0) 5.2.0
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
love-xin :: ~/arm/crosstool-ng-1.22.0_build »
为了不影响主机看网页、玩游戏,当时设置Ubuntu是2G运行内存,所以时间有点慢,想要快点可以设置大一点。
crosstool-ng-1.22.0搭建开发环境的更多相关文章
- Eclipse搭建Android5.0应用开发环境 “ndk-build”:launchingfailed问题解决
Eclipse搭建Android5.0应用开发环境 "ndk-build":launchingfailed问题解决 详细参考http://blog.csdn.net/loongem ...
- 3、Cocos2dx 3.0游戏开发找小三之搭建开发环境
尊重开发人员的劳动成果.转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27107295 搭建开发环境 使用 Cocos2d- ...
- vue_使用npm搭建vue2.0脚手架开发环境
前言: 在使用vue进行开发时需要搭建vue的运行环境,这里主要是使用淘宝镜像cnpm进行搭建vue的脚手架开发环境.主要是分为mac和window两个版本,两个环境的搭建都是大同小异. mac开发环 ...
- vue.js2.0实战(1):搭建开发环境及构建项目
Vue.js学习系列: vue.js2.0实战(1):搭建开发环境及构建项目 https://my.oschina.net/brillantzhao/blog/1541638 vue.js2.0实战( ...
- 从0开发3D引擎(三):搭建开发环境
本系列使用Reason语言,因此需要搭建它的开发环境. 上一篇博文 从0开发3D引擎(二):准备预备知识 搭建开发环境 建议使用VSCode编辑器来开发Reason,因为它的插件支持得最好. 具体搭建 ...
- 第0课 - 搭建开发环境之安装QT
第0课 - 搭建开发环境之安装Qt 1. 课程学习的原材料 — Visual Studio 2010 — Qt SDK 4.7.4 — Qt Creator 2.4.1 2. Visual Studi ...
- 从0系统学Android--1.2 手把手带你搭建开发环境
要想进行程序开发,首先我们需要搭建开发环境,下面就开始搭建环境. 1.2.1 所需的工具 首先 Android 开发是基于 Java 的,因此你需要掌握简单的 Java 语法.会基础的 Java 语法 ...
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...
- 混合式app ionic2.x 手动搭建开发环境教程分享(nodejs,jdk,ant,androidsdk)
1.ionic简介 为什么选用ionic: 彻底开源且免费 性能优异 基于红的发紫的AngularJs 漂亮的UI 强大的命令行(基于更热门的nodejs) 开发团队非常活跃 ngCordova,将主 ...
随机推荐
- Swagger2 添加HTTP head参数
大家使用swagger往往会和JWT一起使用,而一般使用jwt会将token放在head里,这样我们在使用swagger测试的时候并不方便,因为跨域问题它默认不能自定义head参数.然后自己去网上找, ...
- OAuth2.0 授权许可 之 Authorization Code
写在前面: 在前一篇博客<OAuth2.0 原理简介>中我们已经了解了OAuth2.0的原理以及它是如何工作的,那么本篇我们将来聊一聊OAuth的一种授权许可方式:授权码(Authoriz ...
- JSP面试题都在这里
下面是我整理下来的JSP知识点: 图上的知识点都可以在我其他的文章内找到相应内容. JSP常见面试题 jsp静态包含和动态包含的区别 jsp静态包含和动态包含的区别 在讲解request对象的时候,我 ...
- ubuntu 15.10 设置静态ip 分配固定ip 设置dns 设置网关 命令行配置ip 固定ip不生效怎么办
要用到的文件: 配置接口信息 /etc/network/interfaces 配置内容: auto eth0 iface eth0 inet static address 192.168.216.18 ...
- 痞子衡嵌入式:常用的数据差错控制技术(3)- 和校验(Checksum)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式里数据差错控制技术-和校验. 在系列前一篇文章里,痞子衡给大家介绍了比较简单的校验法-奇偶校验,该校验法主要是针对byte传输校验而 ...
- Spring Cloud Alibaba与Spring Boot、Spring Cloud之间不得不说的版本关系
这篇博文是临时增加出来的内容,主要是由于最近连载<Spring Cloud Alibaba基础教程>系列的时候,碰到读者咨询的大量问题中存在一个比较普遍的问题:版本的选择.其实这类问题,在 ...
- C# 【一】进程 , 线程 , 微线程 , 同步 , 异步 , 并发 , 并行 , 阻塞 , 非阻塞
一 理解篇 前言 本文仅仅用作借鉴使用,作者刚入行不久,所以请不小心看到这篇文章的朋友,手下留情. 本文以小故事的形式进行叙述,逻辑不通之处.请理解. 如有错误 ,欢迎指出. 谢谢. ...
- RESTful api风格介绍
RESTful 接口是目前来说比较流行的一种接口,平常在开发中会非常常见. 有过和后端人员对接接口的小伙伴都应该知道,我们所做的大多数操作都是对数据库的四格操作 “增删改查” 对应到我们的接口操作分别 ...
- 2019年1月份A项目面试纪要
2019年1月份A项目面试纪要 本周二(1月22号),笔者接到了A项目的电话面试.这个面试来自A项目的客户,客户的后勤模块的几个顾问组成阵容强大的面试官团队.参加这个面试,让笔者感触良多,自己虽然在S ...
- C#从SqlServer数据库读写文件源码
如下的资料是关于C#从SqlServer数据库读写文件的内容,希望能对码农们有一些用. <%@ Page Language="C#" %> <script run ...