ub904下使用crosstoolng构建交叉编译工具链.docx

上传人:b****5 文档编号:7646863 上传时间:2023-01-25 格式:DOCX 页数:12 大小:397.20KB
下载 相关 举报
ub904下使用crosstoolng构建交叉编译工具链.docx_第1页
第1页 / 共12页
ub904下使用crosstoolng构建交叉编译工具链.docx_第2页
第2页 / 共12页
ub904下使用crosstoolng构建交叉编译工具链.docx_第3页
第3页 / 共12页
ub904下使用crosstoolng构建交叉编译工具链.docx_第4页
第4页 / 共12页
ub904下使用crosstoolng构建交叉编译工具链.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

ub904下使用crosstoolng构建交叉编译工具链.docx

《ub904下使用crosstoolng构建交叉编译工具链.docx》由会员分享,可在线阅读,更多相关《ub904下使用crosstoolng构建交叉编译工具链.docx(12页珍藏版)》请在冰豆网上搜索。

ub904下使用crosstoolng构建交叉编译工具链.docx

ub904下使用crosstoolng构建交叉编译工具链

================================================================

原创申明

原创者:

MichaelYang

作者申明:

为让更多人了解linux,欢迎转载,转载时请保留该原创申明。

本文虽然粗浅,但请尊重作者的劳动成果。

================================================================

环境

VMWARE6.5

Ub9.04(CD安装版)

内核版本如下

第一次编译(失败)

1.下载crosstool-ng-1.6.0(这些文件被放在目录/home/ysh/mnt)

不用下载其他包,crosstool-ng将根据用户配置自动下载相关的包,下图是编译过程下载的包的截图。

也可下载其他相关包到目录(图4-1说明了如何指定包的下载目录),这样crosstool-ng就不会再去网上下载了。

下图是本文编译过程自动下载的各个包的名字及其版本。

2.建立相关目录

mkdir/home/ysh/my_folder/src

mkdir/home/ysh/my_folder/build

3.安装crosstool-ng(注意:

网上说,若系统有mawk,需用gawk替换掉。

cd/home/ysh/my_folder/src

tar-xvf/home/ysh/mnt/crosstool-ng-1.6.0.tar.bz2

cd/home/ysh/build

mkdircrosstool-ng-build

../../src/crosstool-ng-1.6.0/configure#问题【Q1】

cd/home/ysh/my_folder/src/crosstool-ng-1.6.0

./configure--prefix=/home/ysh/my_folder/build/crosstool-ng-build#指定安装根路径

make#结果如下图

makeinstall#结果如下图

cd/home/ysh/my_folder/build/crosstool-ng-1.6.0/bin

./ct-ngarm-unknown-linux-gnueabi#生成crosstool-ng的默认配置文件

./ct-ngmenuconfig#启动crosstool-ng配置菜单,如下图

4.配置选项

●指定工具链的安装路径

Pathsandmiscoptions --->Prefixdirectory()

我填入的是“/home/ysh/tools/arm-gcc-4.3.2”

●手动修改配置文件(因为选项中没有对应核的版本可选)

vi/home/ysh/my_folder/build/crosstool-ng-1.6.0/bin/.config#修改项如下

CT_KERNEL_VERSION="2.6.29"

CT_LIBC_GLIBC_MIN_KERNEL="2.6.29"

5.生成工具链

./ct-ngbuild#问题【Q2】

至此,第一次编译宣告失败!

第二次编译(成功)

1.前面3步同“第一次编译”

2.…

3.…

4.配置选项

1)配置路径

图4-1

2)配置binutils的版本

3)配置编译器支持的编译语言

4)配置glibc的版本

5)手动修改配置文件(因为选项中没有对应核的版本可选)

vi/home/ysh/my_folder/build/crosstool-ng-1.6.0/bin/.config#修改项如下

CT_KERNEL_VERSION="2.6.29"

CT_LIBC_GLIBC_MIN_KERNEL="2.6.29"

6)复制crosstool-ng在“第一次编译”过程中自动下载的相关文件到备份目录,然后手动删除crosstool-ng下载目录下的所有文件。

下载目录下会有在“第一次编译”过程中crosstool-ng自动产生的隐藏文件,如下图:

若不删除就运行“./ct-ngbuild”将得到下面的错误:

删除后再将备份目录的内容拷贝过来,可避免crosstool-ng重新下载这些文件。

7)./ct-ngbuild#开始生成工具链

下面是经过约2.5小时的编译后,编译成功的结果。

工具链目录下的内容

遇到的问题汇总

1.问题【Q1】

1)问题1

解决方法:

安装gawk

sudoapt-getinstallgawk

2)问题2

缺少bison

解决方法:

安装bison

sudoapt-getinstallbison

3)问题3

缺少flex

解决方法:

安装flex

sudoapt-getinstallflex

4)问题4

解决方法:

安装makeinfo

sudoapt-getinstallmakeinfo

出现如下错误

解决方法:

搜索ub替代文件,下面截图是如何确定替代文件名。

安装texinfo

sudoapt-getinstalltexinfo

5)问题5:

缺少automake,解决方法同前。

6)问题5:

缺少libtool,解决方法同前。

7)aria2、curl、cvs

8)遇到下面的提示信息

因遇到没有找到的文件后,程序继续执行,并提示可执行make和makeinstall,所以没有纠正该提示。

2.问题【Q2】(配置完成后,编译工具链过程中出现问题。

1)问题1

解决方法:

sudoapt-getinstallgcj-jre

sudoapt-getinstallgcj-jdk

sudoapt-getinstallgcj

但编译到最后时出现下面问题

(图A)

在ub的manpages页面查到i486-linux-gnu-gcj由包gcj-4.3提供,而前面安装的是gcj。

于是,卸载gcj(sudoapt-getremovegcj),安装gcj-4.3(sudoapt-getinstallgcj-4.3),安装时遇到下面警告信息:

不管该警告。

编译时仍然遇到图A的问题。

估计是该版内核不支持gcj吧(不太清除,望前辈解答),在第二次编译中,采用下图的配置方式,去掉编译java的功能后,问题解决。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1