嵌入式系统原理及应用开发教学课件作者陈渝第7章嵌入式Linux开发环境课件.ppt
文本预览下载声明
第7章 嵌入式Linux开发环境 第7章 嵌入式Linux开发环境 7.1 GNU Tools 7.2 项目管理 7.3 调试器 7.1 GNU Tools GNU Tools综述 GCC 编译与链接 GCC 工具介绍 C语言库 ELF文件格式 GNU Tools综述 GNU Tools是Linux环境下的开发工具,用于代码的生成。GNU Tools的重要组成部分是GCC。GCC 是GNU Compiler Collection 的缩写,是一个非常优秀的跨平台编译器集合,支持x86、ARM、MIPS 和PowerPC 等多种目标平台,支持C、C++、Java、ADA、Fortran 和Pascal 等多种高级语言。 GNU Tools综述 GNU Tools综述 GNU Tools综述 GNU Tools是Linux环境下的开发工具,用于代码的生成。GNU Tools的重要组成部分是GCC。GCC 是GNU Compiler Collection 的缩写,是一个非常优秀的跨平台编译器集合,支持x86、ARM、MIPS 和PowerPC 等多种目标平台,支持C、C++、Java、ADA、Fortran 和Pascal 等多种高级语言。 GNU Tools综述 GCC 编译与链接 GCC 编译与链接 归档工具ar 移除符号工具strip 列出文件符号工具nm 目标文件复制工具objcopy 目标文件信息工具objdump C语言库 ELF文件格式 ELF文件格式 7.2项目管理 工程管理工具Make与Makefile 版本控制 工程管理工具Make与Makefile 工程管理工具Make与Makefile 工程管理工具Make与Makefile 版本控制 7.3 调试器 GDB调试基础 远程GDB调试 GDB调试基础 GDB调试基础 远程GDB调试 课程结束 GCC默认处理的文件 Binutils工具集合 GCC对C语言程序的处理 * 静态库 .a 动态库 .so 目标文件 .o 二进制文件 头文件 *.h 汇编语言 *.s *.S 预处理后的C++语言源文件 *.ii 预处理后的C语言源文件 *.i C++语言源文件 *.C / *.cxx / *.cc C语言源文件 *.c 文本文件 文件说明 扩展名 文件类型 显示程序调用段的各种数据 Gprof 可以将一个可执行程序的地址映射到源文件的对应行。 addr2line 产生归档文件的系引,并将其保存到归档文件中,系引同时列出归档文件各成员所定义的可重分配目标文件。 ranlib 显示文件中的可打印字符 string 显示ELF文件中的各种信息 readelf 显示目标文件的反汇编工具 objdump 转换二进制代码的工具 objectcopy 用以显示目标文件中的符号 nm 去除文件中的符号 stripe 归档工具,可以将多个文件组合成一个大文件,并且可以读取原始文件的内容。 ar GNU链接器。用于将一个或多个目标文件.o、库组合成一个可执行程序;或者生成静态库和动态库。 ld GNU汇编器。用以将处理器的汇编代码转换成可执行代码,并存储到目标文件.o文件中 as 说明 工具名称 预处理 编译 汇编 链接 # gcc hello.c -o hello # ./hello Hello world! 预处理 # gcc -E hello.c -o hello.i 编译和汇编 # gcc -c hello.i -o hello.o 链接 # gcc hello.o -o hello 一步完成: 分布完成: /* hello.c */ #include stdio.h int main(void) { printf (Hello world!\n ); return 0; } 一步完成: # gcc foo1.c foo2.c -o foo 源程序: foo1.c foo2.c 多步完成: # gcc -c foo1.c -o foo1.o # gcc -c foo2.c -o foo2.o # gcc foo1.o foo2.o -o foo ar 工具用于建立、修改、提取归档文件(archive)。一个归档文件是包含多个文件的单个文件(也可以把它认为是一个库文件),其结构保证了可以从中检索并得到原始的被包含文件(称做此归档文件的成员)。被包含的原始文件的内容、模式(权限)、时间戳、所有者和组等属性都保存在归档文件中,并且可在提取后,恢复原始文件的相关属性。 ar [-] p[ mod [ relpos]] archive [ member ...] st
显示全部