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