读书频道 > 系统 > linux > 深度探索Linux操作系统系统构建和原理解析
3. 定义环境变量
2013-09-28 14:14:44     我来说两句 
收藏    我要投稿   
全书一共8章:第1章介绍了如何准备工作环境。在第2章中构建了编译工具链,这是后面构建操作系统各个组件的基础。在这一章中,不仅详细讲解了工具链的构建过程,而且还通过对编译链接过程的探讨,深入讨论了工具链  立即去当当网订购

为了简化编译过程中的一些命令,我们需要定义一些环境变量。同时为了避免每次切换到vita用户时,都需要手动重新定义,我们将其定义在/home/vita/.bashrc中。
unset LANG
export HOST=i686-pc-linux-gnu
export BUILD=$HOST
export TARGET=i686-none-linux-gnu
export CROSS_TOOL=/vita/cross-tool
export CROSS_GCC_TMP=/vita/cross-gcc-tmp
export SYSROOT=/vita/sysroot
PATH=$CROSS_TOOL/bin:$CROSS_GCC_TMP/bin:/sbin:/usr/sbin:$PATH

如果使用的是中文环境的操作系统,那么为了避免不必要的麻烦,要在环境中将其设置英文环境,即上面的unset LANG,因为,在中文环境下,有些工具,比如readelf,在输出ELF文件的信息时,多此一举地将很多英文翻译为了中文,可能给有些脚本处理工具带来一些麻烦。

为了使后面的构建过程可以找到的交叉编译工具,我们将安装交叉编译工具的目录添加到环境变量PATH中,包括临时的GCC存储的目录。注意一点,临时的GCC存储的目录一定要在最终正式的工具链目录的后面,确保安装最终的交叉编译器后,在编译时将优先使用最终的交叉编译器。

Binutils、GCC以及Glibc的配置脚本中均包含三个配置参数:HOST、BUILD和TARGET,这三个配置参数的值均是大致形如ARCH-VENDOR-OS三元组的组合。在编译前,可以通过配置选项设定这几个参数的值。如果配置时不显示指定这几个参数,编译脚本将自动探测编译所在的机器的相关值。

读者可以通过查看变量MACHTYPE,或者查看编译时配置过程的结果,确定机器的三元组。以笔者的机器为例,该值为i686-pc-linux-gnu,表示机器的CPU型号为i686,vendor为none,操作系统为linux-gnu。
root@baisheng:~# echo $MACHTYPE
i686-pc-linux-gnu

如果HOST的值和TARGET的值相同,那么编译脚本就构建本地编译工具。只有当HOST和TARGET的值不同时,编译脚本才构建交叉编译工具。因此,虽然目标平台也是x86架构的,但是为了使用交叉编译的方式,我们在配置时故意显示设置TARGET参数为i686-none-linux-gnu,如此,TARGET就会与编译脚本自行检测到的HOST(对于笔者的机器来说,即i686-pc-linux-gnu)不同,从而构建交叉编译工具。读者可根据自己的具体环境进行调整,总之,要使TARGET与HOST不同。为了方便在编译时设置配置参数,因此我们定义了环境变量BUILD、HOST和TARGET。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2. 建立工作目录
下一篇:4. 切换到vita用户
相关文章
图文推荐
3.3.6 GNOME的软件管
3.3.5 GNOME的文件管
3.3.4 GNOME的窗口管
3.3.3 收藏夹和快捷
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站