




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
GNU编译工具链使用简介,张吉豫zhangjiyu2005-03-12,2,内容,GNU编译工具链的基本组成与工作流程工具链的常用工具和选项Unicore工具链与交叉编译,3,编译工具链的基本工作流程,一个“helloworld”程序的演变历程,4,GNU工具链的组成,GCCGNUCompilerCollectionBinutilsGNUbinaryutilitiesGlibcGNUCLibrary软件开发的基本工具集合,5,GCC,功能:高级语言(.c、.cpp、.F)汇编语言(.s)用户界面,驱动各工具的执行组成:一组可执行程序+一组库cpp、gcc、g+、g77cpp0、cc1、cc1plus、f771libgcc.a、crtbegin.o、crtend.o支持多种语言和目标机,6,Binutils,功能:汇编语言(.s)目标文件可执行程序查看二进制文件信息组成:一组可执行程序as、ldobjdump、readelf、ar支持多种目标机,7,Glibc,功能:提供语言和操作系统的标准库函数组成:若干可执行程序+大量库ldd、iconv、localeISOC、POSIX、UNIX、GNU绝大部分与目标机无关,8,GNU工具链的工作流程,扩展名的默认含义需要预处理的源代码:.c、.cc、.F不需预处理的源代码:.i、.ii、.f需要预处理的汇编代码:.S不需预处理的汇编代码:.s目标文件:.o静态库:.a动态库:.so,9,cpp0,cc1、cc1plus、f771,as,ld、ar,.i、.ii、.f,.s,.o,libgcc.a,可执行程序或库,glibc,gccg+g77,.i、.ii、.f,.c、.cc、.F,.s,.o,.c、.cc、.F.i、.ii、.f.s、.o,10,常用工具和选项,编译:gcc/g+/g77汇编和连接:as、ld二进制工具:objdump、readelf、strip、ar、nm、lddgprof、gcov,11,帮助选项,-help-target-help显示与目标机有关的帮助信息,比如目标机的一些特殊选项,12,编译(1),gcc/g+/g77optionsfile.-Wall打印警告信息-g添加调试信息到输出文件-O-O0-O1-O2-O3-Os优化选项,若有多个则最后一个有效-D-U定义和取消宏定义-msoft-float使用软件库(libgcc.a)模拟硬件浮点指令,13,编译(2),-I指定头文件搜索路径,若有多个则从前往后搜索-L指定库搜索路径,若有多个则从前往后搜索-l指定引用的库,从当前位置向后搜索-static-shared使用静态连接或动态连接-pg-fprofile-arcs-ftest-coverage添加额外的统计代码用于profile,与gprof和gcov配合使用,14,编译(3),-E输出预处理后的文件(.i、.ii、.f等)-S输出编译生成的汇编文件(.s)-c输出汇编生成的目标文件(.o)-o指定输出文件名-v输出编译过程的详细信息,包括编译过程中以哪些参数调用了哪些程序。,15,编译(4),基于profiling的优化编译根据程序执行反馈的信息指导编译优化以产生出更好的代码。使用方法编译:添加-fprofile-arcs选项和其他优化选项进行编译,生成可执行程序执行:执行程序,对每个源程序sourcefile生成sourcefile.da,其中保存了统计信息重新编译:添加-fbranch-probabilities选项和其他相同的优化选项重新编译,生成质量更高的代码,16,汇编和连接,asoption.asmfile.汇编器,可由gcc-c代替ldoptionsfile.连接器,可由gcc代替通常由gcc调用,一般不直接使用,17,二进制工具,objdumpreadelfstriparnmlddgprofgcov,18,ELF可重定位目标文件示例,sections,19,二进制工具(1),objdumpoption(s)file(s)反汇编各种格式的目标文件和可执行程序常用选项:-d只反汇编代码段-D反汇编代码段和数据段-S混合输出源代码和汇编代码,编译时必须加-g选项,20,二进制工具(2),readelfoption(s)elf-file(s)显示ELF格式文件信息常用选项:-e显示头信息,包括ELFfileheader、sectionheader、programheader-s显示符号表信息-r显示重定位信息-a显示所有信息,21,二进制工具(3),stripoption(s)in-file(s)删除输入文件的符号表和指定的section常用选项:-o指定输出文件名,22,二进制工具(4),ar管理归档文件(*.a)常用命令:dmqrtx分别用于删除、移动、添加、替换、显示、取出归档文件的内容举例arx/usr/lib/libc.a取出libc.a中的所有目标文件(*.o)到当前目录arqlibmy.aobj1.oobj2.o将obj1.o和obj2.o加入到libmy.a中,23,二进制工具(5),nmoption(s)file(s)显示文件的符号信息,可用于各种目标文件、可执行程序和归档文件(.a)举例nm/usr/lib/libc.asymbol,printf.o:00000000T_IO_printf00000000TprintfUstdoutUvfprintf,24,二进制工具(6),lddOPTION.FILE.输出动态连接程序的共享库依赖关系举例,njtAquariustemp$ldd/bin/lslibtermcap.so.2=/lib/libtermcap.so.2(0 x40028000)libacl.so.1=/lib/libacl.so.1(0 x4002d000)libc.so.6=/lib/i686/libc.so.6(0 x42000000)libattr.so.1=/lib/libattr.so.1(0 x40033000)/lib/ld-linux.so.2=/lib/ld-linux.so.2(0 x40000000)njtAquariustemp$,25,二进制工具(7),gprof根据程序执行产生的数据(gmon.out)输出profile信息,包括每个函数执行时间、所占比例、调用关系等。可用于分析程序的关键代码,指导程序员进行优化使用方法编译:加-pg选项执行:产生gmon.out(二进制数据)显示:gprofprogram_nameoutput,26,二进制工具(8),gcov另一个profiling工具,可以分析程序一次执行过程中每行源代码的执行数量、branch跳转情况等。可用于分析程序的关键代码和构造testsuite源代码在gcc的包中,不属于binutils使用方法编译:加-fprofile-arcs-ftest-coverage选项,最好不加优化选项执行:针对每个sourcefile产生sourcefile.bb、sourcefile.bbg、sourcefile.da(二进制数据)显示:gcovsourcefile.c生成sourcefile.gcov,27,Unicore工具链,移植GNU工具链到unicore系统两套版本uc1gcc-2.95.3+glibc-2.1.3+binutils-2.10.1uc2gcc-3.2.1+glibc-2.3.1+binutils-2.13.2,28,Unicore工具链,使用方法本地:与在x86上的本地工具链几乎没有什么区别交叉编译:命令前都加上前缀unicore32-linux-,如unico
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 梦幻花园的实现方法
- 2025浙江省金华成泰农商银行社会招聘考试含答案
- 2025浙江金华市武义县司法局招聘4人笔试备考试题及答案解析
- 2025云南楚雄州禄丰市教育体育局机关直属事业单位选调工作人员10人笔试含答案
- 初高中学生如何正确处理学校暴力问题
- 船舶货物运输事故调查规定
- 如何引导初高中学生正确应对生活挑战
- 2025四川内江市法院系统招聘聘用制审判辅助人员120人考试含答案
- 2025年事业单位工勤技能-广东-广东计算机操作员一级(高级技师)历年参考题库含答案解析
- 2025年四川宜宾兴文县第一次考调事业单位工作人员17人笔试备考题库及参考答案详解
- 单选题51-100试题含答案
- 最新苏教牛津译林版英语五年级上册Unit 4《Hobbies》Grammar time 公开课课件
- 第8课时 主题阅读《雨的四季》-2022-2023学年七年级语文上册(部编版)
- 危险品管理台帐
- 现场技术服务报告模版
- 一年级上《人与自然》
- 高等有机化学PPT精品课程课件全册课件汇总
- 教学课件·固体物理基础(第2版)
- 完整课件-西方经济学下册(第二版)
- 青岛版四年级科学新教材上册实验
- 冷却塔使用说明书资料
评论
0/150
提交评论