嵌入式学习9(Linux gcc gdb mkfile)
来源:互联网 发布:淘宝账号及密码免费送 编辑:程序博客网 时间:2024/05/21 08:01
GCC编译器
源文件-》预处理-》编译-》汇编-》链接-》可执行文件
预处理(–E):处理以#开头的语句,如#include #define 等,产生一个*.i的文件。
gcc -E -o zmx.i zmx.c 等价于 gcc zmx.c –E –o zmx.i
预编译(–S):检查语法错误,无误后,把代码翻译成汇编语言,产生*.s文件
gcc -S -o zmx.s zmx.i
汇编(-c):将汇编文件转换成目标文件,产生*.o文件,它是二进制文件,但不可执行
gcc -c -o zmx.o zmx.s
链接(-o):链接各种静态库和动态库,得到可执行文件。(一步到位,自动清除前面步骤)
gcc -o star zmx.o
其他常用
gcc-o 生成指定的输出文件
gcc-v 查询gcc版本信息
gcc-g 生成调试信息,gdb调试器可以利用该信息
gcc-I 指定额外的头文件搜索路径
gcc-L 指定额外的函数库搜索路径
gcc-static 静态链接库,默认都是动态链接库
gcc-w 不生成任何警告信息
gcc-Wall 生成所有警告信息
GDB调试
first of all :在编译时,把调试信息加到可执行文件中
1、 进入(两种方式)
Ø gdb –》 file+文件名 -》q(quit)退出
Ø gdb+文件名
2、 操作
3、 l(list):列出代码清单
b(break) n:在第n行设置断点 disable n:禁用断点 delete n:删除第几个断点
b func:b+函数名,表在函数入口处设置断点
bt:查看函数堆栈
finish:退出函数
r(run) 执行
c(continue):继续运行
S :一步一步执行,进入函数
n:单条语句执行,不进入函数
display x:一直监察显示x的值
info b:查看断点信息
p i:显示变量i的当前值
Makefile
Ø 语法为:
目标:依赖
命令
Ø 步骤:
vi makefile
cmz:main.o func1.o
<Tab> gcc –o cmz main.o func1.o
main.o: main.c
<Tab> gcc –c –o main.o main.c
func1.o:func1.c
<Tab>gcc –c –o func1.o func1.c
clean:
rm –rf *.o(刷新)
最后退出vi编辑器,在命令行输make即可
Ø 注意:执行是写法的逆序,
写Tap的地方一定要用Tap(正确情况下目标是蓝色,依赖是黑色,命令是红色)
饿~~~
- 嵌入式学习9(Linux gcc gdb mkfile)
- 学习嵌入式Linux系统开发基础 第六课(gcc与gdb)
- 学习嵌入式Linux系统开发基础 第六课(gcc与gdb)
- Linux学习(十二):gcc编译和gdb调试
- 嵌入式学习笔记---GCC编程与gdb调试
- Linux学习之GCC&GDB,Makefile
- 嵌入式linux学习 arm-linux-gcc安装
- Linux程序设计基础(gcc、makefile、gdb)
- linux笔记(gcc及gdb调试)
- linux GCC、GDB、Makefile
- linux GCC、GDB、Makefile
- Linux 的gcc gdb
- Linux+GCC+GDB
- gcc gdb 学习
- GCC/GDB学习
- 学习gcc+gdb+make
- gcc、gdb学习笔记
- Linux学习(gdb)
- bootstrap-table合并单元格组合表头
- 使用反射对Servlet请求进行转发
- PostMan使用教程二 在test suite中运行test case
- 比特币深层技术原理浅析
- Java 变量类型
- 嵌入式学习9(Linux gcc gdb mkfile)
- 牛克编程-二分查找
- 高并发学习
- 谷歌为GridView添加HeaderView
- poj3083 DFS靠墙走+BFS
- Spring Boot 系列(五)web开发-Thymeleaf、FreeMarker模板引擎
- Android音频系统之音频基础
- 解决WIFI驱动RTL8188无法在rk3168平板Android4.2启动wifi的问题
- frm-40654 记录已经被另一个用户更新,重新查询以查看修改