学习嵌入式Linux系统开发基础 第六课(gcc与gdb)

一、gcc编译器

1、gcc是编译系统。能够编译c、c++、object c、Java、Fortran、Pascal、Moudula-3和Ada等语言。
2、编译流程
(1)预处理(Pre-Processing)如 gcc -E prog.c -o prog.i
(2)编译(Compiling)如 gcc -S prog.i -o prog.s
(3)汇编(Assembling)如 gcc -c prog.s -o prog.o
(4)链接(Linking)如 gcc prog.o -o prog (-o后不接任何东西 默认生成a.out)
链接到库函数,库函数分两种:动态库和静态库。
静态库是在编译连接时把库文件的代码全部加入到可执行性文件中,后缀名一般是.a
动态库是在程序执行的时候加载库,这样节省系统的开销。后缀名一般是.so

编译时 gcc prog.o -o prog -std=c99 调用的是c99标准
3、编译选项
.c  C语言源代码文件
.a   是由目标文件构成的库文件
.C,.cc或.cxx C++源代码文件
.h 头文件
.i 已经预处理过的C/C++源代码文件
.o 编译后的目标文件
.s 汇编语言源代码文件
.S 经过预编译的汇编语言源代码文件。


gcc [options] [filenames]
options:编译器所需要的编译选项
filenames: 要编译的文件名。

-c 只编译,不链接
-S 生成汇编代码
-E 只做预处理
-g 在可执行程序中包含调试信息
-o file 生成可执行文件
-I dir 在头文件的搜索路径加到dir目录中
—L dir
-static 链接静态库
-l(library_name)链接该名字的库
4、警告和出错选项
-ansi 支持标准c程序
-pedantic 允许列出全部警告
-pedantic-error允许列出全部错误信息
-w 关闭所有警告和错误
-Wall 允许列出有用的报警信息
5、优化
-O0, -O1, -O2, -O3在调试的时候最好不使用任何优化选项,只有当程序在最终发行的时候才考虑对其进行优化。
二、gdb调试
1、使用流程
查看文件    l(list)
设置断点 b(breakpoint)
查看断点情况 info b
运行代码  r(run)
查看变量值 p + 变量值(print)
单步运行 n(next)  s(step) 
恢复程序运行 c(continue)
2、gdb基本命令
help
(1)工作环境相关的命令
set args运行时的参数指定运行时参数,如:set args 2
show args 查看设置好的运行参数
path dir 设定程序的运行路径
show paths 查看程序的运行路径
set enVironment var [=value]设置环境变量
show enVironment [var]查看环境变量
cd dir 进入到dir目录,相当于shell中的cd命令
pwd 显示当前工作目录
shell command 运行shell的command命令
(2)设置断点与恢复命令
bnfo b 查看所设断点
break  行号或函数名 <条件表达式>设置断点
tbreak 行号或函数名 <条件表达式>设置临时断点,到达后被自动删除
Delete [断点号] 删除指定断点,其断点号为”info b”中的第一栏。若缺省断点号则删除所有断点
disable [断点号] 停止指定断点,使用”info b”仍能查看此断点。同delete一样,省断点号则停止所有断点
Enable [断点号] 激活指定断点,即激活被disable停止的断点
condition [断点号] <条件表达式>修改对应断点的条件
ignore [断点号]<num>在程序执行中,忽略对应断点num次
Step 单步恢复程序运行,且进入函数调用
Next 单步恢复程序运行,但不进入函数调用
Finish 运行程序,直到当前函数完成返回
C 继续执行函数,直到函数结束或遇到新的断点
(3)Gdb中源码查看相关命令
list <行号>|<函数名>查看指定位置代码
file [文件名] 加载指定文件
forward-search 正则表达式源代码前向搜索
reverse-search 正则表达式源代码后向搜索
dir dir 停止路径名
show directories显示定义了的源文件搜索路径
info line 显示加载到Gdb内存中的代码
(4)Gdb中查看运行数据相关命令
print 表达式|变量 查看程序运行时对应表达式和变量的值
x <n/f/u> 查看内存变量内容。其中n为整数表示显示内存的长度,f表示显示的格式,u表示从当前地址往后请求显示的字节数
display 表达式 设定在单步运行或其他情况中,自动显示的对应表达式的内容
(5)Gdb中修改运行参数相关命令
set 变量=设定值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值