GCC程序编译
GCC编译器能将C,C++语言源程序,汇编语言编译、链接成可执行文件
在Liunx可执行文件没有统一的后缀。系统从文件的属性来区分可执行文件和不可执行文件
GCC通过后缀来区别输入文件的类型:
.c 为后缀的文件:C语言源代码文件
.a为后缀的文件:是由目标文件构成的库文件
.C,.cc活.cxx为后缀的文件:是c++源代码文件
,h为后缀的文件:头文件
.i为后缀的文件:已预处理过的C源代码文件
.II为后缀的文件:已预处理过的C++源文件
.o为后缀的文件:是编译后的目标文件
.s为后缀的文件:是汇编语言源代码文件
.S为后缀的文件:是经过预编译的汇编语言源代码文件
预处理的工作:宏展开
gcc的基本用法:
gcc [编译器所需要的编译选项] [要编译的文件名]
例如:
gcc hello.c -o hello -o指定输出文件的文件名
gcc -c hello.c 生成.o文件,目前应用开发阶段不需要
gcc -g hello.c 增加调试信息,使得文件变大
gcc -O optimize.c 优化程序,对时间进行优化
gcc -I /home/Lesson/Part1/3 hollo.c -o hello 加头文件寻找目录
GDB程序调试
一款功能强大的调试器
1.启动被调试程序
2.让被调试的程序在指定的位置停住
3.当程序被停住后,可以检查程序状态(如:变量值)
- 在桌面创建一个名为“main.c”的文件
touch main.c
- 写代码
- 编译生成可执行文件
gcc -g main.c -o main
如果需要安装,sudo apt install gcc即可
- 启动GDB
gdb main
打断点的方式
由于文件过大,一般会对软件工程用make进行编译
Makefile工程管理
规则:用于说明如何产生一个或多个目标文件,规则格式如下
targets:prerequisites
command
目标 依赖 命令