笔记4

嵌入式lLinux开发工具-调试器gdb

1.gdb也是GNU计划(a\启动运行程序 b\设置断点 c\查看变量值)
2.使用gdb之前 需要 -g编译选项(gcc -g miancc.c -o maincc)
运行(gdb run)

.2学习gdb命令:gdb可执行文件 --tui
运行命令:run(r) continue©

3.-o(给文件重新起名字)
例:(gcc -g miancc.c -o maincc)
(gdb maincc)
run(运行)
list(展示文件(原码))
break 2(在第二行设置断点)
4.一行一行运行(next 或者 n)

5.设置断点 break 行数
.5设置断点 break+行号 break+函数名 break+行号+条件
.6查看断点信息: info break(其中num为断点编号)
6.删除断点 delete +断点号(断点编号)

7.gdb main --tui (出现一个新的界面 输入run 即可在框内查看自己的原码文件)
(在0310文件下进入)
8.单步执行 :next(不进入子函数) step(进入子函数)
9.layout asm 进入汇编语言(–tui框内)
layout src 进入原码文件

10.查看变量值:print +变量名(例:print i/print s)

嵌入式Linux开发工具-工程管理器 make

1.什么是工程(项目):多个源文件,资源文件构成的项目代码
2.如何编译多个源文件的代码:(例:1000个源文件,并且不在同一目录)–工程管理器 make
3.作用:自动编译
4.makefile文件的作用:存放编译项目的命令(如何编译这个项目的所有操作)
5.makefile是一个脚本文件:批处理命令
6.makefile的语法:三要素:目标 依赖 命令(执行命令,根据依赖的文件生成对应的目标)
格式:
目标:依赖(直接回车)
命令

执行顺序:make 目标名称(从目标名称下开始执行)如果目标名称不存在就从下一行开始执行
例子: hello:hello.c
gcc hello.c -o hello (在makefile文件里写)

例 2:步骤 vim hello.c
vim makefile
make

(编译第一步是语法检查(即转换为汇编语言)(-S))

为什么:
因为hello放在第一行是最终目标所以要执行两个命令(先是第二个生成hello.o文件,
在执行第一个命令让 hello.o生成 hello可执行文件)
因为hello.o放在第一行则 hello.o是最终目标 (谁放在第一行谁就是最终目标)(只要执行完第二个命令就可以生成 所以不需要执行第一个命令)(以下是makefile文件)
hello:hello.o
gcc hello.o -o hello
hello.o:hello.c
gcc -c hello.c -o hello.o

   .PHONY:clean
   clean:
          rm -rf hello hello.o     ------>(删除)
   install:
           mv hello /bin         ------->(剪切到 bin目录里)(bin存放命令/二进制)(sbin存放高级命令)

例题:创建一个计算器
1.创建add sub mui div.c文件
int add(int a,int b)//以加法为例
{
return a+b;
}
2.创建一个main函数
#include <stdio.h>
int main(){
printf(“add=%d\n”,add(12,6));
printf(“sub=%d\n”,sub(12,6));
printf(“mui=%d\n”,mui(12,6));
printf(“div=%d\n”,div(12,6));
return 0;
}

3.在makefile里面进行批处理
cal:main.o add.o sub.o div.o mui.o
(table键)gcc main.o add.o sub.o div.o mui.o -o cal
main.o:main.c
gcc -c main.c -o main.o
add.o:add.c
gcc -c add.c -o add.o
sub.o:sub.c
gcc -c sub.c -o sub.o
mui.o:mui.c
gcc -c mui.c -o mui.o
div.o:div.c
gcc -c div.c -o div.o
.PHONY:clean
clean:
rm -f cal *.o

4.隐藏 c文件
例:
hello:hello.o
@gcc hello.o -o hello
@echo “make done!”
hello.o:hello.c
@gcc -c hello.c -o hello.o
.PHONY:clean
clean:
@rm -rf hello hello.o
install:
mv hello /bin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值