GNU编译工具链使用简介

GNU编译工具链使用简介

ID:37766714

大小:356.31 KB

页数:30页

时间:2019-05-30

GNU编译工具链使用简介_第1页
GNU编译工具链使用简介_第2页
GNU编译工具链使用简介_第3页
GNU编译工具链使用简介_第4页
GNU编译工具链使用简介_第5页
资源描述:

《GNU编译工具链使用简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、GNU编译工具链使用简介张吉豫zhangjiyu@mprc.pku.edu.cn2005-03-12内容GNU编译工具链的基本组成与工作流程工具链的常用工具和选项Unicore工具链与交叉编译2编译工具链的基本工作流程Pre-processor (cpp/Gcc-E)Compiler(cc1/Gcc-S)Assembler(as/Gcc-c)Linker(ld)hello.c(text)hello.i(text)hello.s(text)hello.o(binary)hello (binary)printf.o(binary)

2、一个“helloworld”程序的演变历程3GNU工具链的组成GCC——GNUCompilerCollectionBinutils——GNUbinaryutilitiesGlibc——GNUCLibrary——软件开发的基本工具集合4GCC功能:高级语言(.c、.cpp、.F)->汇编语言(.s)用户界面,驱动各工具的执行组成:一组可执行程序+一组库cpp、gcc、g++、g77……cpp0、cc1、cc1plus、f771……libgcc.a、crtbegin.o、crtend.o……支持多种语言和目标机5Binutils功

3、能:汇编语言(.s)->目标文件->可执行程序查看二进制文件信息组成:一组可执行程序as、ldobjdump、readelf、ar……支持多种目标机6Glibc功能:提供语言和操作系统的标准库函数组成:若干可执行程序+大量库ldd、iconv、locale……ISOC、POSIX、UNIX、GNU绝大部分与目标机无关7GNU工具链的工作流程扩展名的默认含义需要预处理的源代码:.c、.cc、.F……不需预处理的源代码:.i、.ii、.f……需要预处理的汇编代码:.S不需预处理的汇编代码:.s目标文件:.o静态库:.a动态库:.s

4、o8cpp0…cc1、cc1plus、f771…asld、ar…….i、.ii、.f.s.olibgcc.a……可执行程序或库glibcgccg++g77…….i、.ii、.f.c、.cc、.F.s.o.c、.cc、.F.i、.ii、.f.s、.o9常用工具和选项编译:gcc/g++/g77汇编和连接:as、ld二进制工具:objdump、readelf、strip、ar、nm、lddgprof、gcov10帮助选项--help--target-help显示与目标机有关的帮助信息,比如目标机的一些特殊选项11编译(1)gcc/

5、g++/g77[options]file...-Wall打印警告信息-g添加调试信息到输出文件-O-O0-O1-O2-O3-Os优化选项,若有多个则最后一个有效-D-U定义和取消宏定义-msoft-float使用软件库(libgcc.a)模拟硬件浮点指令12编译(2)-I指定头文件搜索路径,若有多个则从前往后搜索-L指定库搜索路径,若有多个则从前往后搜索-l指定引用的库,从当前位置向后搜索-static-shared使用静态连接或动态连接-pg-fprofile-arcs-ftest-coverage添加额外的统计代码用于pr

6、ofile,与gprof和gcov配合使用13编译(3)-E输出预处理后的文件(.i、.ii、.f等)-S输出编译生成的汇编文件(.s)-c输出汇编生成的目标文件(.o)-o指定输出文件名-v输出编译过程的详细信息,包括编译过程中以哪些参数调用了哪些程序。14编译(4)基于profiling的优化编译根据程序执行反馈的信息指导编译优化以产生出更好的代码。使用方法编译:添加-fprofile-arcs选项和其他优化选项进行编译,生成可执行程序执行:执行程序,对每个源程序sourcefile生成sourcefile.da,其中保存

7、了统计信息重新编译:添加-fbranch-probabilities选项和其他相同的优化选项重新编译,生成质量更高的代码15汇编和连接as[option...][asmfile...]汇编器,可由gcc-c代替ld[options]file...连接器,可由gcc代替通常由gcc调用,一般不直接使用16二进制工具objdumpreadelfstriparnmlddgprofgcov17ELF可重定位目标文件示例ELFheader.text.rodata.data.bss.symtab.rel.text.rel.data.deb

8、ug.line.strtabSectionheadertablessections18二进制工具(1)objdump[option(s)][file(s)]反汇编各种格式的目标文件和可执行程序常用选项:-d只反汇编代码段-D反汇编代码段和数据段-S混合输出源代码和汇编代码,编

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。