gcc,make,gdb命令用法
来源:互联网 发布:淘宝图片上传后变小 编辑:程序博客网 时间:2024/05/04 00:02
gcc
编译四阶段:
预处理 (展开头文件)
编译(语法检查,将c编译成汇编语言)
汇编(将汇编语言变为二进制)
链接(将头文件与c库链接)
1.预处理
由于在test.c中使用了头文件 stdio.h ,所以 gcc 编译时首先要把头文件stdio.h中的内容加载到test.c中的首部
gcc -E test.c -o test.i
2.编译(三个功能)
词法分析,主要负责检查关键字、标识符等是否正确。
语法分析,主要负责检查程序中语句的语法是否正确。
语义分析,主要负责检查程序中语句的逻辑意义是否正确。
gcc -S test.i -o test.s
3.汇编
汇编阶段的任务是把汇编程序翻译成 CPU 可以识别的二进制文件,该文件又称为目标文件。
gcc -c test.s -o test.o
4.链接
目标文件虽然已经可以被 CPU 直接识别,但是单个目标文件一般是无法运行的。原因在于一个程序往往是由多个源文件组成的,每个源文件只对应一个目标文件。也许有人会问, test 程序不就只有一个源文件 test.c 吗,为什么也不能直接运行呢?原因是 test.c 使用了 stdio.h 对应的库函数,所以必须要把 test.o 文件和函数库文件链接在一起才能运行。
gcc test.o -o test
此外,也可以直接输入命令得到可执行文件
gcc test.c -o test
make
vim name.c
(编写简单程序)
vim Makefile
(写makefile 主要告诉make要做的事情)格式为:
target:object
(Tab) command
target为目标,通常是要产生的文件的名称
object:(dependency)依赖, 指用来输入从而产生目标的文件
command: 命令, 是make的执行动作,一个命令占一行, 命令前第一个字符为TAB键.
CC = gcc target = hello object = hello.o $(target) : $(object) (CC) $(object) -o $(target).PHONY:clean " clean: rm -rf target*.o
注:target 为目标,通常是要产生的文件的名称
Object 为依赖(dependency)指用来输入从而产生目标的文件
Command 为命令 是make的执行动作,一个命令占一行,命令前第一个字符为TAB键。(上面$(CC)、rm 前均有Tab键)
gdb 调试工具
GNU 开发了 GDB 调试器(GNU Debugger)。GDB 的调试功能非常强大,甚至可以和 Visual C++、Visual Basic、Jbuilder 等开发工具的调试器相媲美。但 GDB 的缺点是没有图形调试界面。
vim add.c
#include<stdio.h>Int add(int i,int j){Return(i+j);}Int main(){Int i=1,j=4,sum =0;Sum=add(i,j);Printf(“sum i %d”,sum);return 0;}
gcc -g add.c -o add
./add
sum is 5
gdb add(gdb) l "列出源文件(gdb) r "run 运行(gdb) b add "设置断点 程序继续往下运行(gdb) c "continue (gdb) info b "查看断点信息(gdb) b 13 "在13行设置断点(gdb) n "next 查看 不会进入函数内部运行(gdb) s "step 可以在函数调用时进入函数内部运行
- gcc,make,gdb命令用法
- gcc,make,gdb命令用法
- 【新手】gcc g++ gdb make用法总结
- linux GCC GDB make 编程及命令
- gcc gdb make makefile
- 学习gcc+gdb+make
- 细说GCC、Make、GDB
- 初识GCC、MAKE、GDB
- 实例学习gcc+gdb+make
- 实例学习gcc+gdb+make
- 实例学习gcc+gdb+make
- 实例学习gcc+gdb+make
- 实例学习gcc+gdb+make
- 实例学习gcc+gdb+make
- 实例学习gcc+gdb+make
- 实例学习gcc+gdb+make
- 实例学习gcc+gdb+make
- 实例学习gcc+gdb+make
- EditText的所有属性
- 在MAC上安装docker并部署oracle12.2
- WEB篇三 JS
- 在mac上安装postgres数据库
- Python字符串详解
- gcc,make,gdb命令用法
- Java基础部分第十三节
- 总结
- 数据结构——图的深度优先搜索模板
- 舞蹈链
- 网页前端的切图
- 实习经历某独角兽
- jpa命名规则
- java版云笔记(七)之事务管理