免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6909 | 回复: 4

[其它] crosstool-ng详解 [复制链接]

论坛徽章:
0
发表于 2013-09-05 18:11 |显示全部楼层
本帖最后由 crifan 于 2013-09-05 18:11 编辑

整理的,关于crosstool-ng的教程。
用到的,应该会有帮助。
没用过的,路过看看即可。
详见:


crosstool-ng详解
    版本:v2.0

Crifan Li

摘要
本文主要介绍了什么是crosstool-ng,crosstool-ng的名字的写法的含义,为何要有crosstool-ng,crosstool-ng的各种特点,crosstool-ng的使用的基本逻辑;
下载crosstool-ng,安装crosstool-ng到当前系统环境中;
接着介绍了crosstool-ng的常见文件夹的结构组织,关于crosstool-ng本身的一些背景知识和逻辑,比如用ct-ng help查看所拥有的功能,用ct-ng list-steps查看本身的build过程分成哪几步,用ct-ng list-samples查看当前已包含哪些默认的示例配置,用ct-ng show-tuple查看当前配置的是什么交叉编译器,用ct-ng version查看当前crosstool-ng的版本,然后介绍了crosstool-ng本身的配置的使用的基本逻辑,包含使用已有的crosstool-ng的示例配置和根据需要去修改你的crosstool-ng的配置
然后极其详细的解释了crosstool-ng中的各种配置参数含义和用法,主要包含几个方面:crosstool-ng工具相关的配置参数,比如多线程编译以节省时间,从之前错误的那一步恢复继续编译,出错时不立刻退出等,再介绍crosstool-ng核心配置详解,包括crosstool-ng本身相关的重要参数,比如源码包下载保存路径,工作路径,目标安装路径,和交叉编译相关的核心参数,包括举例说明Architecture level, Emit assembly for CPU, Tune for CPU如何去配置,以及其他重要参数,比如MMU,大小端Endianness,浮点处理单元FPU,CFLAGS参数,Linux内核版本,binutils版本,gcc版本,C库的选择,线程模型的选择等。
接着介绍用ct-ng build编译crosstool-ng的过程,然后总结了crosstool-ng常见问题及解决办法,包括几方面:安装crosstool-ng工具本身的,crosstool-ng在配置阶段的,crosstool-ng在编译阶段的
最后介绍了与crosstool-ng相关的一些事项,比如crosstool-ng的作者的主页,linaro对crosstool-ng的支持,Buildroot支持crosstool-ng。
本文提供多种格式供:

在线阅读
下载(7zip压缩包)

HTML版本的在线地址为:
http://www.crifan.com/files/doc/docbook/crosstool_ng/release/html/crosstool_ng.html




    2013-09-04

修订历史
修订 2.0
2013-09-04
crl

  • 将帖子内容整理过来
  • 添加了关于配置的详细解释
  • 添加了关于常见错误的总结




版权 © 2013 Crifan, http://crifan.com

本文章遵从:署名-非商业性使用 2.5 中国大陆(CC BY-NC 2.5)



目录

目录
前言
1.本文目的
2.待完成
1.crosstool-ng简介
1.1.什么是crosstool-ng
1.2.crosstool-ng的名字的写法
1.3.为何要有crosstool-ng
1.4.crosstool-ng的特点
1.4.1.支持(类似于Linux内核配置的那个)menuconfig
1.4.2.支持足够多,且越来越多的架构(architecture)
1.4.3.支持工具链中可选多种不同的C库等模块
1.4.4.支持不同目标OS平台
1.4.5.补丁仓库
1.4.6.支持不同的线程模型
1.4.7.支持软浮点和硬件浮点
1.4.8.支持multlib的工具链(暂处于试验阶段)
1.4.9.支持众多调试相关的内容
1.4.10.提供示例配置
1.4.11.支持多种主机编译环境:各种Linux发行版,Cygwin等
1.5.crosstool-ng的使用的基本逻辑
2.下载和安装crosstool-ng
2.1.下载crosstool-ng
2.2.安装crosstool-ng
3.配置crosstool-ng:ct-ngmenuconfig
3.1.关于crosstool-ng本身的一些背景知识和逻辑
3.1.1.用ct-nghelp查看所拥有的功能
3.1.2.用ct-nglist-steps查看本身的build过程分成哪几步
3.1.3.用ct-nglist-samples查看当前已包含哪些默认的示例配置
3.1.4.用ct-ngshow-tuple查看当前配置的是什么交叉编译器
3.1.5.用ct-ngversion查看当前crosstool-ng的版本
3.2.crosstool-ng本身的配置的使用的基本逻辑
3.2.1.使用已有的crosstool-ng的示例配置
3.2.2.根据需要去修改你的crosstool-ng的配置
3.3.crosstool-ng的配置参数详解
3.3.1.crosstool-ng工具相关的配置参数
3.3.1.1.多线程编译以节省时间
3.3.1.2.从之前错误的那一步恢复继续编译
3.3.1.3.出错时不立刻退出
3.3.2.crosstool-ng核心配置详解
3.3.2.1.crosstool-ng本身相关的重要参数
3.3.2.1.1.源码包下载保存路径
3.3.2.1.2.工作路径
3.3.2.1.3.目标安装路径
3.3.2.2.交叉编译相关的核心参数
3.3.2.2.1.crosstool-ng中的配置参数:Architecture level, Emit assembly for CPU, Tune for CPU
3.3.2.2.2.crosstool-ng中的配置参数:MMU
3.3.2.2.3.crosstool-ng中的配置参数:大小端Endianness
3.3.2.2.4.crosstool-ng中的配置参数:浮点处理单元FPU
3.3.2.2.5.crosstool-ng中的配置参数:CFLAGS参数
3.3.2.2.6.crosstool-ng中的配置参数:Linux内核版本
3.3.2.2.7.crosstool-ng中的配置参数:binutils版本
3.3.2.2.8.crosstool-ng中的配置参数:gcc版本
3.3.2.2.9.crosstool-ng中的配置参数:C库的选择
3.3.2.2.10.crosstool-ng中的配置参数:线程模型的选择
4.编译crosstool-ng:ct-ngbuild
5.crosstool-ng常见问题及解决办法
5.1.安装crosstool-ng工具本身的阶段常见问题及解决办法
5.1.1.缺少一些开发相关的工具
5.1.1.1.configure: error: missing required tool: bison
5.1.1.2.configure: error: missing required tool: flex
5.1.1.3.configure: error: missing required tool: gperf
5.1.1.4.configure: error: missing required tool: makeinfo
5.1.1.5.configure: error: could not find GNU awk
5.1.1.6.configure: error: could not find GNU libtool >= 1.5.26
5.1.1.7.configure: error: could not find GNU automake >= 1.10
5.1.1.8.configure: error: could not find curses header, required for the kconfigfrontends
5.1.2.在Cygwin下出现的一些问题
5.1.2.1.zconf.tab.o:zconf.tab.c\"\".text+0x162a): undefined reference to‘_libintl_gettext'
5.1.2.2.lxdialog/menubox.o:menubox.c\"\".text+0x7d): undefined reference to `_wattrset'
5.1.2.3.nconf.c:1521:2: error: lvalue required as left operand of assignment
5.1.2.4.bash: ct-ng: command not found
5.1.2.5.Win7下无法编辑保存Cygwin中的文件
5.2.crosstool-ng在编译阶段常见问题及解决办法
5.2.1.不论何种平台下编译crosstool-ng常见错误及解决办法
5.2.1.1.scripts/unifdef.c:209:25: error: conflicting types for ‘getline'
5.2.1.2.Build failed in step ‘Extracting and patching toolchain components’,infunction ‘CT_DoExecLog’ (line unknown, sorry)
5.2.1.3.[libgcc/./_powisf2.o] Error 1,/tmp/cc7Xh6xp.s:21: Error: selectedprocessor does not support ARM mode `fmsr s14,r0′
5.2.1.4..build/arm-xscale-linux-gnueabi/buildtools/include/cloog/ppl_backend.h:54:undefined reference to `_ppl_finalize'
5.2.1.5.Makefile:240: *** mixed implicit and normal rules. Stop.
5.2.1.5.1.手动修改每个Makefile中对应的混合规则->使得3.82的make可以识别
5.2.1.5.2.把3.82的make换成3.81版本的make
5.2.1.5.2.1.把你当前的(Linux或Cygwin等)系统环境中的3.82的make换成3.81的make
5.2.1.5.2.2.用crosstool-ng中提供的3.81的make(而不用更换系统环境中的3.82的make)
5.2.2.Cygwin下编译crosstool-ng常见错误及解决办法
5.2.2.1.Cygwin下编译crosstool-ng时导致内存泄露
5.2.2.2.Your file system in ‘xxx/targets’ is *not* case-sensitive!
5.2.3.Linux下编译crosstool-ng常见错误及解决办法
5.2.3.1.gcc-4.2.2/gcc/regrename.c:1646:12: error: ‘IFCVT_ALLOW_MODIFY_TEST_IN_INSN’ undeclared(first use in this function)
6.与crosstool-ng相关的一些事项
6.1.crosstool-ng的作者的主页
6.2.crosstool-ng支持Linaro的gcc
6.3.Buildroot支持crosstool-ng
参考书目
范例清单
3.1. 从出错的那一步恢复重新继续编译
3.2. 如何在编译失败后,修复错误,然后继续接着编译
3.3. 举例说明Architecturelevel, Emit assembly for CPU, Tune for CPU如何去配置
4.1. 正常输出的log信息



论坛徽章:
0
发表于 2013-09-06 09:25 |显示全部楼层
整理的很有条理,好贴就要顶起,

论坛徽章:
0
发表于 2013-09-08 14:19 |显示全部楼层
又一精品,crifan就是精品代名词了,谢谢了

论坛徽章:
0
发表于 2013-09-08 23:09 |显示全部楼层
回复 3# Vixyl


    过奖。不过我倒的确是不喜欢发没质量的帖子,

论坛徽章:
13
巨蟹座
日期:2013-10-30 18:29:4115-16赛季CBA联赛之青岛
日期:2019-01-04 17:30:1015-16赛季CBA联赛之天津
日期:2016-03-08 10:30:1715-16赛季CBA联赛之天津
日期:2015-12-10 15:56:452015年亚洲杯之约旦
日期:2015-03-09 16:29:36双鱼座
日期:2014-11-27 17:17:20寅虎
日期:2014-11-18 13:55:12双子座
日期:2014-03-31 15:41:32狮子座
日期:2014-03-14 11:23:24狮子座
日期:2014-02-19 16:30:12午马
日期:2013-11-04 23:22:31卯兔
日期:2013-10-30 19:51:15
发表于 2013-09-12 20:07 |显示全部楼层
3Q 谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP