2021-01-21

本文介绍了嵌入式Linux开发中的关键工具:GCC交叉编译器,包括编译选项、库文件管理和制作;GDB调试器的使用,如设置断点、查看变量值;以及Makefile在工程管理中的应用,实现自动化编译。通过学习,你可以掌握如何在不同环境下编译代码、调试程序以及高效管理大型项目。
摘要由CSDN通过智能技术生成

**

复习:

**
**什么是交叉编译:**在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译
**为什么要交叉编译器:**每款处理器都有自己的汇编
**

课程内容及学习目标:

**

1.嵌入式linux开发工具–编辑器gcc(静态库和动态库的制作和使用)目标:库制作使用
2.嵌入式Linux开发工具-调试器gdb(调试方法)目标:调试内存错误
3.嵌入式Linux开发工具–工程管理器make目标

**

嵌入式linux开发工具–编辑器gcc

**
1.交叉编译器:(什么是交叉编译?为什么需要交叉编译?安装交叉编译器)
2.编译选项:-E -S -c -o -l -w -Wall -O0123 -D -l
3.库文件:存放函数和变量的仓库,特点:只能使用库里函数和变量,不能看到其事实;
4.Linux库文件:
静态库.a:当使用静态库时,库里的函数和变量是在编译时加载到可执行文件;
动态库.so:当使用动态库时,库里的函数和变量是在运行时加载到可执行文件
面试题:使用静态和动态库的区别(可执行文件的区别)
(1).可执行文件的大小:静态库>动态库—>(内存的使用效率)
(2).可执行文件的速度:静态库>动态库—>(运行效率)
(3).可执行文件的功能升级:静态库<动态库—>(功能升级的难易度)
(4).可执行文件代码部署:静态库>动态库—>(代码位置的部署)
5.库文件的存放路径:/lib/usr/lib
6.如何制作静态库和动态库?
(1).gcc -c 源文件
(2).ar rcs 库文件名 目标文件
(3).gcc 源文件 -l 库名 -L库的路径
(4).gcc -shared -fPLC源文件 -o库名
(5).gcc 源文件 ./库名 -o 可执行文件

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

1.gdb也属于GNU计划的工具(a\启动运行程序 b\设置断点c\查看变量的值)
2.使用gdb调试前:需用-g编译选项
3.学习gdb命令:gdb 可执行命令 --tui
4.运行命令:run ® continue©
5.设置断点:break+行号 break+函数名 braek+行号+条件
6.查看断点信息: info break
7.删除断点: delete +断点编号
8.单步执行: next (不进入子函数) step (进入子函数)
9.查看变量的值: print 变量名

**

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

**
1.什么是工程?(项目:多个源文件及头文件,资源文件构成的项目代码)
2.如何编译多个源文件的代码?(1000个源文件并且不在同一目录)–工程管理器make
3.作用:自动编译(根据makefile里规定的编译过程进行编译,同时通过时间戳判断源文件是否发生变化,进行编译)
4.makefile文件作用:存放编译项目的命令(如何编译这个项目所有操作)
5.makefile是一个脚本文件/语言:批处理
6.makefile语法:三要素:目标,依赖,命令(执行命令,根据以来的文件生成对应的目标)
格式:
目标:依赖
tab 命令
执行顺序:make 目标名称(从目标名称下开始执行)如果目标名称就从一行开始执行

**

企业级Makefile编写:

**
1.总控makefile:进入各个功能子目录执行make命令,并将所有的.o文件链接生成可执行文件
2.功能目录Makefile:将功能目录下的所有.c文件编译生成.o文件
3.脚本目录Makefile:定义其他Makefile文件所用到的变量

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值