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

虽然构建的目标系统是运行在IA32体系架构上的,但是我们不能使用宿主系统的工具链,否则可能会导致目标系统依赖宿主系统。在编译程序时,如果使用了宿主系统的链接器,那么链接器将在宿主系统的文件系统中寻找依赖的动态库,这势必会导致目标系统中的程序链接宿主系统的某些库,从而导致目标系统依赖宿主系统。其直观表现就是程序在编译时可能会顺利通过,但是当在目标系统中运行时,却可能出现未定义符号的错误。

除了上述的依赖问题外,目标系统使用的工具链的各个组件的版本,通常不同于宿主系统,因此,这也要求为目标系统构建一套新的工具链。

但是工具链在软件开发中占据极其重要的位置,包括编译、汇编、链接等多个组件在内的任一组件的问题都可能导致程序执行时出现问题,如执行效率低下,甚至带来安全问题。因此,在实际应用中,很多时候我们都是直接使用已经构建好的工具链,这类工具链一般都被广泛使用,所以在某种意义上其正确性是被实践检验过的,但是也有缺点,就是没有针对具体的硬件平台进行优化。因此,有时我们也会借助某些辅助工具,针对我们的特定硬件,进行配置优化,“半自动”地为目标系统构建编译工具链。

在现实中,完全手工构建工具链的机会并不多,很多时候我们可能都是使用别人已经构建好的。但是,工具链中包含的组件可以说是除了操作系统内核之外的最底层的系统软件,无论是对理解操作系统,还是对开发程序来说,都有着重要的意义。即使永远不需自己手工编译工具链,但是了解工具链的构建过程,也可以帮助更高效灵活地运用已有的工具链,可以在多个现成的工具链中进行更好的选择,也有助于进行“半自动”地构建工具链。

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

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