01-Linux基础-02-06-Linux下编程工具(gcc、gdb)
嵌入式系统工程师
Linux下编程工具 (gcc、gdb)
2
大纲
linux环境开发概述
linux文件及目录结构
linux常用命令
linux文本编辑器vi+gedit
linuxshell脚本编程
linux编译器gcc
linux调试器gdb
linux工程管理软件—make
3
大纲
linux环境开发概述
linux文件及目录结构
linux常用命令
linux文本编辑器vi+gedit
linuxshell脚本编程
linux编译器gcc
linux调试器gdb
linux工程管理软件—make
7
大纲
GCC概述
gcc命令
动态库与静态库
8
大纲
GCC概述
gcc命令
动态库与静态库
9
GCC概述
编译器是将易于编写、阅读和维护的高级计算
机语言翻译为计算机能解读、运行的低级机器
语言的程序。
GUN项目中的一个子项目GCC (GNU Compiler
Collection,GNU编译器套装)是一个编译器套
装,是GNU计划的关键部分,也是GUN最优秀的
软件之一。
GCC最初用于编译C语言,随着项目的发展
GCC已经成为了能够编译C、C++、Java、Ada、
fortran、Object C、Object C++、Go语言的编
译器大家族。
10
GCC概述
GCC的组成
GCC由cpp(预处理器)、gcc(C编译器)、
g++(C++编译器)、binutils (Binary
Utilities 二进制工具)等工具组成。
binutils是辅助GCC的主要软件,常用的工
具有:as (汇编器)、ld (链接器)、ar (ar
工具)等等。
11
大纲
GCC概述
gcc命令
动态库与静态库
12
gcc
gcc仅仅作为真实的编译器和链接器的入口。
它会在需要的时候调用其它组件(预处理器、汇编
器、连接器),并且会传一些额外的参数给编译器
和连接器。
输入文件的类型和传给gcc的参数决定了gcc调用哪
些组件。
13
gcc
gcc识别的文件扩展名如下:
.c C语言文件
.i 预处理后的C语言文件
.C、.cc、.cp、.cpp、.c++、.cxx C++语言文件
.ii 预处理后的C++语言文件
.S 汇编文件
.s 预处理后的汇编文件
.o 编译后的目标文件
.a 目标文件的静态链接库(链接时使用)
.so 目标文件的动态链接库(链接、运行时使用)
14
gcc
编译命令格式
gcc [-option1] ...
g++ [-option1] ...
1.命令、选项和源文件之间使用空格分隔
2.一行