编译方法及工具
编译的四个步骤:
预处理 : #开头内容,展开头文件,替换宏定义,不会进行语法检查。
gcc -E xx.c -o xx.i
编译:检查语法错误,词法错误,将.i文件转换成.s汇编文件。
gcc -S xx.i -o xx.s
汇编:将汇编文件转换成二进制文件(不可执行)
gcc -c xx.s -o xx.o
链接:链接库文件,将不可执行的二进制文件转换成可执行的二进制文件。
gcc xx.o -o xx
gcc xx.c 默认生成a.out
-o: 生成一个新名字的可执行文件
-
gdb调试工具
gcc -g xx.c 生成 a.out
gdb a.out
r: 运行代码
l: 查看文件
b 行号或者函数名:添加断点
info b:查看断点情况
d num(断点编号):删除断点
p 变量名:查看变量的值
s/n: 单步运行,s会进入子函数顺序执行;单步跳过,n不会进入子函数
c: 执行到下一个断点的位置
help:帮助
q: 退出
步骤:代码写好后,先通过gcc -g进行编译代码,没有错误后,可以通过gdb a.out进行调试,输入l查看文件内容,通过b设置断点,输入r进行运行,n或s进行单步调试,q退出
meke编译工具
make:工程管理器,顾名思义,是指管理较多的文件
make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能构根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件文件的内容来执行大量的编译工作。
Makefile或makefile时make读取的唯一配置文件。
makefile根据以下步骤编写:
gcc -c xx.c -o xx.o
gcc xx.o -o xx
计算机的组成
输入设备、输出设备、存储器、运算器(ALU)、控制器
01二进制组合 机器码
- 输入设备:将其他信号转换为计算机可以识别的信号(电信号 1 0 0 1 )。
- 输出设备:将电信号(0、1)转为人或其他设备能理解的信号。
- 运算器:CPU对信息处理和运算的部件,常进行算术运算和逻辑运算,其核心是算术逻辑单元ALU,CPU中用各种各样的数字电路搭配成各种各样的运算电路,如:加、减法等。
- 控制器:整个计算机的指挥中心
- 存储器:存放程序和数据的部件,也是计算机能够实现“存储程序控制”的基础。
- ROM(Read Only Memery)只读存储器
- 掉电不丢失
- 读取速度慢
- 硬盘、U盘
- 存储程序,ROM也叫程序存储器
- RAM(RAndom Memery)随机存储器
- 掉电丢失
- 速度快
- 内存条
- 存储临时变量和程序运行产生的数据
- ROM(Read Only Memery)只读存储器