一.GCC编译器
由vim编辑器生成main.c源代码:
#include<stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
gcc 与 g++ 分别是 gnu 的 c & c++ 编译器 gcc/g++ 在执行编译工作的时候,总共需要4步:
(1)预处理,生成 .i 的文件[预处理器cpp]
gcc -E main.c -o main.i
(2)将预处理后的文件转换成汇编语言, 生成文件 .s [编译器egcs]
gcc -S main.i -o main.s
(3)有汇编变为目标代码(机器代码)生成 .o 的文件[汇编器as]
gcc -c main.s -o main.o
(4)连接目标代码, 生成可执行程序 [链接器ld]
gcc main.o -o main
GCC有超过100个的可用选项,主要包括总体选型、警告和出错选项、优化选项和体系结构相关选项,它的结构如下:
GCC [选项] 文件
选项 | 含义 |
---|---|
-E | 仅做预处理 |
-S | 编译到汇编语言 |
-c | 编译到目标文件 |
-o | 文件输出到文件 |
-static | 禁止使用动态库 |
-share | 使用动态库 |
-I dir | 在头文件的搜索路径列表中添加dir目录 |
-L dir | 在库文件的搜索路径列表添加dir目录 |
-llibrary | 链接名为library的库文件 |
-Wall | 打开所有类型语法警告 |
-Wcomment | 注释中有“/*”,“\”,会影响程序的运行 |
-fsyntax-only | 检查程序中的语法错误,但是不产生输出信息 |
-w | 禁止所有警告信息 |
-O 或 -O1 | 优化生成代码 |
-O2 | 进一步优化 |
二.GDB调试器
GDB可以让用户查看程序的内部结构、打印变量值、设计断点,以及单步调试源代码。GDB调试的是可执行文件,而不是".c"源代码,因此需要通过GCC编译生成可执行文件才能用GDB进行调试。将GCC生成的可执行文件main,如下键入即可进行GDB调试:
gdb ./main
进入GDB后可以进行命令调试,GDB命令很多,可以用help查看GDB命令种类,如果查看具体命令,可以使用help。
&#x