文档介绍:第7章嵌入式Linux开发环境
第7章嵌入式Linux开发环境
GNU Tools
项目管理
调试器
GNU Tools
GNU Tools综述
GCC 编译与链接
GCC 工具介绍
C语言库
ELF文件格式
GNU Tools综述
GNU Tools是Linux环境下的开发工具,用于代码的生成。GNU 。GCC piler Collection 的缩写,是一个非常优秀的跨平台编译器集合,支持x86、ARM、MIPS 和PowerPC 等多种目标平台,支持C、C++、Java、ADA、Fortran 和Pascal 等多种高级语言。
GNU Tools综述
文件类型
扩展名
文件说明
文本文件
*.c
C语言源文件
*.C / *.cxx / *.cc
C++语言源文件
*.i
预处理后的C语言源文件
*.ii
预处理后的C++语言源文件
*.s *.S
汇编语言
*.h
头文件
二进制文件
.o
目标文件
.so
动态库
.a
静态库
GNU Tools综述
工具名称
说明
as
GNU汇编器。用以将处理器的汇编代码转换成可执行代码,
ld
GNU链接器。、库组合成一个可执行程序;或者生成静态库和动态库。
ar
归档工具,可以将多个文件组合成一个大文件,并且可以读取原始文件的内容。
stripe
去除文件中的符号
nm
用以显示目标文件中的符号
objectcopy
转换二进制代码的工具
objdump
显示目标文件的反汇编工具
readelf
显示ELF文件中的各种信息
string
显示文件中的可打印字符
ranlib
产生归档文件的系引,并将其保存到归档文件中,系引同时列出归档文件各成员所定义的可重分配目标文件。
addr2line
可以将一个可执行程序的地址映射到源文件的对应行。
Gprof
显示程序调用段的各种数据
GNU Tools综述
GNU Tool类型:
arm-linux-gcc
arm-elf-gcc
m68k-elf-gcc
g++
步骤:预处理、编译、汇编、链接
GNU Tools综述
预处理
编译
汇编
链接
GCC 编译与链接
# gcc -o hello
# ./hello
Hello world!
预处理
# gcc -E -o
编译和汇编
# gcc -c -o
链接
# gcc -o hello
一步完成:
分布完成:
/* */
#include <>
int main(void)
{
printf ("Hello world!\n" );
return 0;
}
GCC 编译与链接
一步完成:
# gcc -o foo
源程序:
多步完成:
# gcc -c -o
# gcc -c -o
# gcc -o foo