c语言基础---编译调试文件

注释

多行注释
/*
* 注释说明
*/

单行注释
// 注释说明

 gcc编译文件

// 通过目标文件再生成可执行文件
源文件生成目标文件(二进制文件),目标文件生成可执行文件
gcc -o 目标文件.o -c 源文件.c
gcc -o 可执行文件 目标文件.o
// 直接生成可执行文件,执行时是系统自动生成了一个临时目标文件,系统执行完删除了临时目标文件 gcc -o 可执行文件 源文件.c

编译流程

预处理阶段:

1 引入 include 文件

2 删除注释

3 宏替换

4 条件编译

objdump -xd 链接文件   // 反汇编

 

 

gcc 语法

gcc [options] [filenames]

基本选项

-c:只是编译不链接,生成目标文 " . o "

- s 只编译不汇编 ,生成汇编代码

-E :只进行预编译,不做其它处理

-g :在可执行程序中包含标准调试信息

-o  file :指定输出文件

- v :打印出编译器内部编译各过程的命令行信息和编译器的版本。

-std = name :指定 C 语言的标准(如: c99 等), 必须在 -o 前面

-l dir :在头文件的搜索路径列表中添加 dir 目录。

优化选项, 必须在 -o 前面

-O :减小代码的长度和执行时间,效果等价于-O1 ,其中包括包括线程跳转和延迟退栈。

-O2 :除完成所有 -O1 级别的优化之外,同时还要进行一些额外的调整工作,如处理器指令调度等。

-O3 :除完成所有- O2 级别的优化之外,还包括循环展开和其他一些与处理器特性相关的优化工作。

数字越大优化的等级越高,也就意味着程序的运行速度越快。一般选用-O2 选项,它在优化长度、编译时间和代码大小之间取得了一个比较理想的平衡点。

警告和出错选项:
-ansi :支持符合 ANSI 标准的 C 程序
-pedantic :允许发出 ANSIC 标准所列的全部警告信息
-pedantic-error :允许发出 ANSIC 标准所列的全部错误信息
-w :关闭所有警告
-wall :允许发出 gcc 所提供的所有有用的报替信息, 必须在 -o 前面,出现 error 不生成可执行文件;出现 waing 生成可执行文件

制作库文件选项:
-L dir :在库文件的搜索路径列表中添加 dir 目录
-static :链接静态库
-Iname :链接名为 name 的库文件
-shared :表明是使用共享库

gdb 调试器

b 行号/函数名

quit 退出调试

gdb core

 

make

 

 

 

 

 

原文地址:https://www.cnblogs.com/xuey/p/12158692.html