感觉有点累了,希望能尽快做完,早点回去休息。嗯哼。。。
编译工具gcc
1.gcc简介 : 是GNU(GUN COmpiler Collection)的简称,是Linux平台下的嵌入式开发领域。
2.程序的编译过程 :
四个阶段 :预处理,编译,汇编,链接。
预处理 | *.c | -E | *.i | 中间文件 |
编译 | *.i | -S | *.s | 汇编文件 |
汇编 | *.s | -c | *.o | 目标文件 |
链接 | *.o | *.out(默认,可以自己指定) | 可执行文件 |
扩展 :反汇编 0bjdump -dS *.o > *
提示 :直接从*.c文件生成目标文件*.o 命令 :gcc -c *.c
如果仅仅把源文件编译成目标文件的时候,main函数不是必须的。
注意 :同时链接多个源文件 命令 :gcc -o a.out *.c *.c *.c
编译多个文件时,如果文件不再目录下,可以用参数-I来指定目录、
加油站 :gcc -D TEST_CONFIGURATION test.c -o test 等同于 #define TEST_CONFIGURATION (不必修改源文件就能改变符号控制的行为)
3.警告功能
-Wall : 提示程序着哦你的一系列常见错误警告
-Werror : 将警告作为一个错误来处理,会中断编译过程
调试工具gdb
1.GDB(GNU DeBugger) : 是GNU的调试器,一般和gcc配搭使用.
2.基本命令
f (file): 指定一个可执行文件进行调试。
l (list): 列程序出源文件
r (run): 运行可执行文件
b (break): 设置断点
c (continue) : 可以另中断的程序继续执行,直到下一个中断点或结束
p (print) : 输入某个变量的值
n (next) : 单步执行
s (step) : 单步进入某一函数
q (quit) : 退出GDB
(1).调试命令编译程序 : 终端输入 : gcc -g *.c -0 *.exe
(2).生成*.exe的可执行文件,用GDB调试程序需要执行 :gdb *.exe
1.在gdb命令行中输入 list 打印源程序,再次输入 list 进行翻页
2.输入 b 11 : 表示在源程序的第11行设置新断点
提示 :info b 查看已经设置的断点
delete 断点号 删除断点
disable 断点号 清除断点
3.输入run 执行程序
4.输入s单步执行进入函数
5.输入n单步执行
6.输入p i 查看变量i 的值
7.最后,输入c, 程序继续执行,然后正常退出。
扩展 : 调试过程中,,内存会有栈帧在占用, 有两个特点 :(1).局部变量 (2).临时值
用bt查看当前栈帧的使用情况
frame + 栈帧号 切换栈帧
info locals 查看基本情况
今天的英语 :variable(变量) format(格式) arguments(参数)
唉。。好了,想睡觉了。。有点担心。。