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

GNU Make使用了一些隐示的预定义变量,并且这些变量都有对应的默认值。如CC代表编译器,默认值是程序cc,这也是为什么Linux各个发行版中一般都有一个符号连接“cc”指向真正的编译器的原因。再比如AR代表汇编器,默认值为ar。读者可以使用下面的命令输出make的数据库,进一步查看make数据库中的信息,比如查看交叉编译环境中的编译器。
vita@baisheng:~$ make -p | grep CC
...
CC = i686-none-linux-gnu-gcc
CPP = $(CC) –E
...

这些隐示的预定义变量可以通过环境变量覆盖,或者在makefile中显示重新定义。为了避免在编译每一个软件包时,都需要显示指定使用我们构建的交叉工具链,我们在环境变量中定义编译过程使用的相关变量。我们将相关变量定义在/home/vita/.bashrc中,确保在每次切换到vita用户时,这些变量定义自动生效。
/home/vita/.bashrc
export CC="$TARGET-gcc"
export CXX="$TARGET-g++"
export AR="$TARGET-ar"
export AS="$TARGET-as"
export RANLIB="$TARGET-ranlib"
export LD="$TARGET-ld"
export STRIP="$TARGET-strip"

在后面安装编译程序时,一般我们均通过给make传递变量DESTDIR指定make将它们安装到目标系统的根文件系统下,即$SYSROOT目录下。为了避免每次都需要指定DESTDIR变量,我们也在.bashrc中定义这个变量。
/home/vita/.bashrc
export DESTDIR=$SYSROOT
为了使设置生效,定义变量后需要退出并重新切换到vita用户。

注意,如果需要重新构建交叉编译工具链,在构建前,要注释掉这一节的变量定义,在构建完成工具链后再重新启用这里的变量定义。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.2.8 构建完整的交叉编译器
下一篇:2.2.10 封装“交叉”pkg-config
相关文章
图文推荐
3.3.6 GNOME的软件管
3.3.5 GNOME的文件管
3.3.4 GNOME的窗口管
3.3.3 收藏夹和快捷
排行
热门
文章
下载
读书

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