文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发软件工程如何为嵌入式开发建立交叉编译环境
精品推荐
特别推荐
·Tomcat中用web.xml控制Web应用详解
·计算机网络工程课程讲解
·COM, COM+ and .NET 的区别
·ISO9000:2000 质量管理八大原则(1)
·Struts框架及其在Web开发中的应用
·献给汇编初学者-函数调用堆栈变化分析
·质量管理的十三项步骤和八项原则(1)
·质量管理体系审核全解(1)
·WinCE.Net平台下电力巡检仪数据同步研究与实现
·黑盒测试和白盒测试
热点TOP10
·编写质量手册
·Visual Studio 2005集成开发环境图解
·清除window 2000/XP系统中的无用设备的驱动程序
·编程不难学?
·LINQ 性能分析系列之传说中的LINQ
·.NET设计模式之工厂方法模式
·建模过程的盲点:软件集成中的软知识
·用XMLTextReader类加速.NET中XML存取
·Rational统一过程
·揭开.NET消息循环的神秘面纱

如何为嵌入式开发建立交叉编译环境

日期:2008年5月16日 作者: 查看:[大字体 中字体 小字体]


我们来解释一下上面生成的可执行文件都是用来干什么的

add2line - 将你要找的地址转成文件和行号,它要使用 debug 信息。

Ar-产生、修改和解开一个存档文件

As-gnu 的汇编器

C++filt-C++ 和 java 中有一种重载函数,所用的重载函数最后会被编译转化成汇编的标号,c++filt 就是实现这种反向的转化,根据标号得到函数名。

Gasp-gnu 汇编器预编译器。

Ld-gnu 的连接器

Nm-列出目标文件的符号和对应的地址

Objcopy-将某种格式的目标文件转化成另外格式的目标文件

Objdump-显示目标文件的信息

Ranlib-为一个存档文件产生一个索引,并将这个索引存入存档文件中

Readelf-显示 elf 格式的目标文件的信息

Size-显示目标文件各个节的大小和目标文件的大小

Strings-打印出目标文件中可以打印的字符串,有个默认的长度,为4

Strip-剥掉目标文件的所有的符号信息


如何为嵌入式开发建立交叉编译环境(图一) 如何为嵌入式开发建立交叉编译环境(图二)
回页首

建立初始编译器(bootstrap gcc)

首先进入 build-tools 目录,将下载 gcc 源代码解压




$cd $PRJROOT/build-tools
$tar -xvzf  gcc-2.95.3.tar.gz

然后进入 gcc-2.95.3 目录给 gcc 打上补丁




$cd gcc-2.95.3
$patch -p1< ../gcc-patch/gcc-2.95.3.-2.patch
$patch -p1< ../gcc-patch/gcc-2.95.3.-no-fixinc.patch
$patch -p1< ../gcc-patch/gcc-2.95.3-returntype-fix.patch
echo timestamp > gcc/cstamp-h.in

在我们编译并安装 gcc 前,我们先要改一个文件 $PRJROOT/gcc/config/arm/t-linux,把
TARGET_LIBGCC2-CFLAGS = -fomit-frame-pointer -fPIC
这一行改为
TARGET_LIBGCC2-CFLAGS = -fomit-frame-pointer -fPIC -Dinhibit_libc -D__gthr_posix_h

你如果没定义 -Dinhibit,编译时将会报如下的错误




../../gcc-2.95.3/gcc/libgcc2.c:41: stdlib.h: No such file or directory
../../gcc-2.95.3/gcc/libgcc2.c:42: unistd.h: No such file or directory
make[3]: *** [libgcc2.a] Error 1
make[2]: *** [stmp-multilib-sub] Error 2
make[1]: *** [stmp-multilib] Error 1
make: *** [all-gcc] Error 2

如果没有定义 -D__gthr_posix_h,编译时会报如下的错误




In file included from gthr-default.h:1,
                 from ../../gcc-2.95.3/gcc/gthr.h:98,
                 from ../../gcc-2.95.3/gcc/libgcc2.c:3034:
../../gcc-2.95.3/gcc/gthr-posix.h:37: pthread.h: No such file or directory
make[3]: *** [libgcc2.a] Error 1
make[2]: *** [stmp-multilib-sub] Error 2
make[1]: *** [stmp-multilib] Error 1
make: *** [all-gcc] Error 2

还有一种与-Dinhibit同等效果的方法,那就是在你配置configure时多加一个参数-with-newlib,这个选项不会迫使我们必须使用newlib。我们编译了bootstrap-gcc后,仍然可以选择任何c库。

接着就是配置boostrap gcc, 后面要用bootstrap gcc 来编译 glibc 库。



上一页 [1] [2] [3] [4] [5] [6] 下一页 




上一篇:小心借情人节传播的QQ尾巴(第3版)

下一篇:对软件项目管理的探讨

相关文章:
·如何建立QQ空间相册
·建立自由的会计日期的报表--1.4.让报表处理期初和期末之间的数据
·巧用宽带路由器建立个人网站
·如何建立一个网站?规划、设计、目的、原则、宣传
·利用Delphi 5.0开发OLE自动化控制器操纵Excel
·Authorware实战开发专题(4-1)
·Authorware实战开发专题(4-2)
·如何建立自己的博客
·J2ME程序开发初学者快速入门的九大要点
·Authorware实战开发专题(3-2)
相关软件:
·自己动手建立企业网站
·中国少年儿童智力开发百科全书(上中下)高清PDF全彩图书
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·Windows环境下32位汇编语言程序设计
·Windows 程式开发设计指南 中文版
·Java开发指南--Servlets和JSP篇
·全脑开发大师IQ EQ MQ
·中国21世纪人口、环境与发展白皮书(一)
·vb6开发宝典
·新经济环境下的管理会计(周亚娜)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot