注释
多行注释
/*
* 注释说明
*/
单行注释
// 注释说明
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 退出调试
来源: http://www.bubuko.com/infodetail-3384015.html