




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章嵌入式Linux开发环境 第7章嵌入式Linux开发环境 7 1GNUTools7 2项目管理7 3调试器 7 1GNUTools GNUTools综述GCC编译与链接GCC工具介绍C语言库ELF文件格式 GNUTools综述 GNUTools是Linux环境下的开发工具 用于代码的生成 GNUTools的重要组成部分是GCC GCC是GNUCompilerCollection的缩写 是一个非常优秀的跨平台编译器集合 支持x86 ARM MIPS和PowerPC等多种目标平台 支持C C Java ADA Fortran和Pascal等多种高级语言 GNUTools综述 GNUTools综述 GNUTools综述 GNUTools是Linux环境下的开发工具 用于代码的生成 GNUTools的重要组成部分是GCC GCC是GNUCompilerCollection的缩写 是一个非常优秀的跨平台编译器集合 支持x86 ARM MIPS和PowerPC等多种目标平台 支持C C Java ADA Fortran和Pascal等多种高级语言 GNUTools综述 预处理编译汇编链接 GCC编译与链接 gcchello c ohello helloHelloworld 预处理 gcc Ehello c ohello i编译和汇编 gcc chello i ohello o链接 gcchello o ohello 一步完成 分布完成 hello c includeintmain void printf Helloworld n return0 GCC编译与链接 一步完成 gccfoo1 cfoo2 c ofoo 源程序 foo1 cfoo2 c 多步完成 gcc cfoo1 c ofoo1 o gcc cfoo2 c ofoo2 o gccfoo1 ofoo2 o ofoo 归档工具ar ar工具用于建立 修改 提取归档文件 archive 一个归档文件是包含多个文件的单个文件 也可以把它认为是一个库文件 其结构保证了可以从中检索并得到原始的被包含文件 称做此归档文件的成员 被包含的原始文件的内容 模式 权限 时间戳 所有者和组等属性都保存在归档文件中 并且可在提取后 恢复原始文件的相关属性 ar p mod relpos archive member 移除符号工具strip strip工具用于去除文件中的符号 使用strip既可以移除目标中文件中的某个符号 也可以移除整个节 使用strip 至少要有一个输入文件 也可以输入一个文件列表 strip Fbfdname target bfdname Ibfdname input target bfdname Obfdname output target bfdname s strip all S g d strip debug Ksymbolname keep symbol symbolname Nsymbolname strip symbol symbolname x discard all X discard locals Rsectionname remove section sectionname ofile p preserve dates v verbose V version help objfile 列出文件符号工具nm nm工具的功能是列出目标文件中的符号 这样可以帮助程序员分析可执行程序 获得目标文件中的符号信息和它的属性 nm a debug syms g extern only B C demangle D dynamic s print armap A o print file name n v numeric sort p no sort r reverse sort size sort u undefined only tradix radix radix P portability target bfdname fformat format format defined only l line numbers no demangle V version help object file 目标文件复制工具objcopy objcopy工具用来把某种格式的目标文件内容进行转换 并输出为另一种格式的目标文件 objcopy使用GNUBFD库读写目标文件 通过这个BFD库 objcopy能够以一种不同于源目标文件的格式来生成目标文件 objcopy Fbfdname target bfdname Ibfdname input target bfdname Obfdname output target bfdname S strip all g strip debug Ksymbolname keep symbol symbolname Nsymbolname strip symbol symbolname Lsymbolname localize symbol symbolname Wsymbolname weaken symbol symbolname x discard all X discard locals bbyte byte byte iinterleave interleave interleave Rsectionname remove section sectionname p preserve dates debugging gap fill val pad to address set start val adjust start incr change address incr change section address section val change warnings no change warnings set section flags section flags add section sectionname filename change leadingchar remove leading char weaken v verbose V version help input file outfile 目标文件信息工具objdump objdump工具用于显示一个或多个目标文件的信息 由其选项来控制显示哪些特定的信息 objdump a archive headers bbfdname target bfdname debugging C demangle d disassemble D disassemble all disassemble zeroes EB EL endian big little f file headers h section headers headers i info jsection section section l line numbers S source mmachine architecture machine p private headers r reloc R dynamic reloc s full contents stabs t syms T dynamic syms x all headers w wide start address address stop address address prefix addresses no show raw insn adjust vma offset version help object file C语言库 在嵌入式程序的C语言程序的开发中 C语言库是应用程序所依赖的基础 在C语言库中 提供一些C语言中程序运行的基础 包括标准的库函数 如 printf malloc 字符串处理等基本函数操作 ELF文件格式 ELF ExecutableandLinkingFormat 可执行链接格式 是UNIX系统实验室 USL 作为应用程序二进制接口 ApplicationBinaryInterface ABI 而开发和发布的 工具接口标准委员会 TIS 选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操作系统之间可移植的二进制文件格式 ELF文件格式包括三种主要的类型 可执行文件可重定向文件 o 共享库 so ELF文件格式 ELF文件从链接器 linker 的角度看 是一些节 sections 的集合 从程序装载器 loader 的角度看 它是一些段 segments 的集合 ELF格式的程序和共享库具有相同的结构 只是段的集合和节的集合上有些不同 7 2项目管理 工程管理工具Make与Makefile版本控制 工程管理工具Make与Makefile main c include hello h intmain intargc char argv hello argc argv return0 hello c includeinthello intargc char argv inti printf Helloworld n for i 0 i argc i printf argv d s n i argv i return0 hello h inthello intargc char argv 工程管理工具Make与Makefile MakefileCC gccHEAD hello hSRC hello cmain cOBJS hello omain oTT helloINC CFLAGS pipe w I INC LDFLAGS Wallall TT TT OBJS CC LDFLAGS OBJS o o c CC CFLAGS c o clean rm f o TT 工程管理工具Make与Makefile makegcc pipe w I c ohello ohello cgcc pipe w I c omain omain cgcc Wallhello omain o ohello makecleanrm f ohello 版本控制 CVS是一种广泛应用的 开源的 透明于网络 程序代码版本的分合控制 明于网络的版本控制系统 CVS支持程序代码版本的储存与维护 程序代码版本的追踪回溯 支持多人合作开发项目等 不过这个广为使用的版本控制工具还有不少问题 包括中文支持和二进制文件的处理都有或多或少的问题 SVN的出现改变了这一现状 SVN保留大多数CVS特性 而且进一步支持更多的特性 包括版本化管理目录 重命名和文件meta data 提交是真实的原子操作 可以通过WebDAV DeltaV协议进行访问 可以选择独立服务器模式 分支和标签是代价低廉 固定不变的 的操作 高效处理二进制文件等 7 3调试器 GDB调试基础远程GDB调试 GDB调试基础 GDB是一个强大的命令行调试工具 命令行的强大就是在于其可以形成执行序列 形成脚本 UNIX下的软件全是命令行的 这给程序开发提代供了极大的便利 命令行软件的优势在于 它们可以非常容易的集成在一起 使用几个简单的已有工具的命令 就可以做出一个非常强大的功能 调试方法 gdbhello使用gdb启动被调试的程序 GDB调试基础 GDB调试主要使用的语法为 break在程序中设置端点clear清除所有的已定义的停止点 info显示相关的信息 如地址 寄存器 栈信息 输入参数等next执行下一行 但是不进入函数 相当于stepoverstep执行下一行 进入函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路建设工程施工组织设计方案
- 2025吉林省吉林大学白求恩第一医院神经创伤外科招聘备考练习题库及答案解析
- 能源产品销售代理合同协议书范本模板
- 2025年哈尔滨市清滨小学校招聘临聘教师2人考试参考试题及答案解析
- 2025江苏苏州工业园区东延路实验学校后勤辅助人员招聘1人考试参考试题及答案解析
- 2025年勤务保障试题及答案
- 艺术作品使用许可合同新
- 话务员劳动合同协议书模板范本
- 2025年绍兴市妇幼保健院公开招聘编外工作人员8人备考练习题库及答案解析
- 2025年小车匠培训考试题及答案
- 贴牌生产委托授权书
- 做一个卓越而幸福的教育者课件
- 人教版小学数学五年级上册完美版全册PPT教学课件
- 《无人机组装与调试》-教学教案
- 跨境电商物流与供应链管理PPT全套完整教学课件
- C语言试讲稿课件
- 收音机组装指导书
- 义务教育科学课程标准(2022年版)测试题及答案含课标解读
- 水运工程统一用表之一《浙江省港口工程统一用表》
- GB/T 13306-2011标牌
- GA 1800.6-2021电力系统治安反恐防范要求第6部分:核能发电企业
评论
0/150
提交评论