clfs原理分析

clfs原理分析

ID:27572272

大小:719.50 KB

页数:18页

时间:2018-12-04

clfs原理分析_第1页
clfs原理分析_第2页
clfs原理分析_第3页
clfs原理分析_第4页
clfs原理分析_第5页
资源描述:

《clfs原理分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、CLFS2.0原理分析好的开始:设置好环境变量对于后而的编译参数变的通用,也便于输入方便不容易出错这里需要注意的是在cat>〜/.bashrc«"EOF"set+humask022CLFS=/mnt/clfsLC_ALL=POSIXPATH=${CLFS}/cross-tools/bin:/bin:/usr/binexportCLFSLC_ALLPATHEOF里的PATH设置,这个PATH设置一直到制作结束也没有变化,这不同于LFS在第五$和第六$使用不同的PATH,这个问题之后在文章屮会回答。另一个重耍设罝就是expor

2、tCLFS_HOST="$(echo$MACHTYPE

3、sed"s/$(echo$MACHTYPE

4、cut-d--f2)/crossf)"exportCLFS_TARGET="arm-unknown-linux-gnu"这个设置对于不同的体系平台会不一样,在文$的附录中有另外两个体系平台的定义。一个说明:我们暂时把CLFS2.0屮第五章的部分称为交叉工具链部分,而把第六章称为目标体系平台。CLFS2.0屮的绝招sysroot参数sysmot参数一共出现丫也就出现f三次,但这三次的使用可以说完全改变丫以前的制作完整工具链的方

5、法、sysroot的M的其实很简单:就是将--with-sysroot所指定的H录作为根M录來使用。我们会在文章屮看到这三次sysroot是如何使用来达到H的的。分析开始:首先开始复制一些头文件到別CLFS}巾的usr/include巾,这个步骤似乎和以前没什么区别,但实际上我个人觉得这里少了一步,应该在炱制前增加一句代码:makeinclude/linux/version.h接着我们就要安装binutils,这个包的H的就是为了连接H标文件为川•执行文件,那么在第一次编译binutils的时候我们就耍开始用-with-s

6、ysroot这个“祌奇”的参数了、../binutils-2.17/configure-prefix=${CLFS}/cross-tools-host=${CLFS_HOST}-target=${CLFS_TARGET}-with-sysroot=${CLFS}--disable-nls-enable-shared-disable-multilib从参数上的理解是,binutls将被安裝到${CLFS}/cross-tools小(-prefix=${CLFS}/cross-tools),编译岀來的二进制文件将运行ffi${

7、CLFS_HOST}所指定的平台上(-host=${CLFS_HOST}),而其连接出的可执行文件是运行在射CLFS_TARGET}所指定的平台上(-target=${CLFS_TARGET}),屏蔽国际化支持(--disable-nls),同时编译出共享链接库(--enable-shared),不支持多种架构库(--disable-multilib),同时将${CLFS}所定义的H录作为根H录(-with-sysroot)接着的makeconfigure-host不耍少丫,这样AT以利用前面设置的参数全面配置binuti

8、ls所冇需耍编译的部分。编译这个binutils是使用主系统的Wnutils和gcc来实现的,主系统是i386结构的,因此,这次我们编译出的这个binutils是利用主系统这个工具链来完成编译的,编译出来的程序也是运行在1386上的。下而我们图解这个部分主系统由上图我们可以看出,实际上binutils编译过程中是没有用到B标体系的内核头文件的,因此复制内核的Mt小体系头文件和编译binutils的顺序是无所谓的。接着我们就要准备开始编译GCC(不要以为我这里漏掉了glibc-2.4的headers这部分,这样安排正是为丫说

9、明glibc-2.4的headers部分为什么耍在编译GCC之前处理),我们來看一下它的编译参数../gcc-4.1.1/configure-prefix=${CLFS}/cross-tools-host=${CLFS_HOST}-target=${CLFS_TARGET}-disable-multilib--with-sysroot=${CLFS}--disable-nls--disable-shared--enable-languages=c从参数上理解就是,gcc将被安装到狖CLFS}/cross-tools,而且只

10、编译c语言部分,同时将${CLFS}所定义的目录作力根目录(-with-sysroot)这里有必要解释一下一个比较重要的概念就是"交义编译”,交义编译简单的讲就是在一种体系的机器上编译出运行于另一种体系的代码(两种体系也nJ•以是相同的,似通常是以不同的体系來说明),如卜'图:这里很熏耍的一个部分就是编

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。