制作交叉编译工具链时产生的一个问题深深地、深深地困扰了我
时间:2009-06-12
来源:互联网
我打算制作一个交叉工具链,可以跨发行版,就是这个工具链能运行在不同发行版上,就像网上提供的工具链一样,下载下来解压,然后指定此工具链的PATH,就可以进行交叉编译工作。
我的做法:
在virtualbox上虚拟了ubuntu8.04,根据youbest的这篇文章 http://zdbr.net.cn/download/Loongson64-1.1.htm 中的“制作交叉工具链”部分,制作了mips64el交叉工具链,在虚拟的ubuntu8.04下测试工具链,可以正常编译;然后我将${BUILDDIR}/cross-tools搬到我的主机ubuntu8.10下面,再测试编译一个简单的c程序的时候,就提示找不到stdlib.h stdio.h这些库文件。
我归结的原因:
1. 虚拟机或ubuntu本身的问题。
2. "交叉编译工具链的本质就是在宿主上生成目标机代码的工具,自然要链接到宿主c库", 交叉工具链搬到8.10下以后,“宿主c库”发生了变化,导致工具链无法使用。
求解:
我归结的原因哪个是正确的?都不正确?那到底是什么原因?
到底应该怎么做一个跨发行版的交叉编译链呢?
谢谢。
作者: yantao123yt 发布时间: 2009-06-12
作者: 冷血封情 发布时间: 2009-06-12
2. 请详细阅读 CLFS 手册,并先了解制作时对宿主系统有何软硬件要求
作者: d00m3d 发布时间: 2009-06-13
作者: 冷血封情
你编译软件的时候用的是你主系统的工具链吧。
|
作者: yantao123yt 发布时间: 2009-06-15
作者: d00m3d
1. 是 UB 本身问题,因为默认安装时很多提供头文件的 xxx-dev 之类的"开发包"是没有装上的,你要知道是那些包再把它们 apt-get 回来,也许抓个 build-essential 回来可以解决一部份问题,其余就要看软件的依赖了
2. 请详细阅读 CLFS 手册,并先了解制作时对宿主系统有何软硬件要求 |
之前也听说ubt下制作的交叉工具链有问题,果然!
另外还有个问题:cross-tools目录下的各个子目录都是干嘛用的?不同目录层次下的bin,include,lib好像是在不同编译阶段生成的,但他们之间的区别还不甚了解;尤其像i486-cross-linux-gnu/mips64el-unknown-linux-gnu/和mips64el-unknown-linux-gnu/这两个目录有什么关系?他们下面的bin,include,lib看的人眼夸缭乱。
作者: yantao123yt 发布时间: 2009-06-15
作者: d00m3d 发布时间: 2009-06-17
作者: d00m3d
还有一点,用 UB 做 host 要把 mawk 改成 gawk 才行
|
作者: yantao123yt 发布时间: 2009-06-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28