嵌入式linux开发工具怎么用

58次阅读
没有评论

共计 2676 个字符,预计需要花费 7 分钟才能阅读完成。

今天丸趣 TV 小编给大家分享一下嵌入式 linux 开发工具怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

嵌入式 linux 开发工具有:1、vim 工具,vim 是从 vi 发展出来的一个文本编辑器,有代码补全,编译及错误跳转等方便编程的功能;2、gcc 编译器,是由 GNU 开发的编程语言编译器;3、工程管理器 make,make 是 linux 中的工程自动编译管理器等。

嵌入式 Linux 开发工具

vim 的使用

1、文本编辑器:vim +vscode:学会使用并配置 vim、安装及使用插件 + 远程链接 vscode

2、编译器 gcc:常用编译选项,静态库和动态库的制作和使用

3、调试器 gdb:断点调试、查看内存、调试内存错误

4、工程管理器 make:编写 Makfile, 多目录的 Makefile 编写

5、shell 编程(C 语言之后)

6、git 版本管理工具(线上:C 语言)

7、Cmake(项目)

8、内存检测工具(线上:C 语言)

vi/vim/gvim: 文本编辑器 gedit emac(脱离鼠标)

适用场景:单文件编辑;vim+ 插件(高度定制)IDE

vim 模式:命令行模式(初次进入,按 a,i)、底行模式、插入模式(esc 切换为命令行)wq 保存退出

vim 配置(vimc):

修改 /etc/vim/vimc 文件(行号,缩进风格、鼠标支持)

vim /etc/vim/vimrc

安装插件

vim 命令的使用:

命令行:yy 复制 p 粘贴 dd 删除 u 恢复上一行

底行:查找 /str ?str

替换:行号或者 %s/old/new/gc

编辑多个文件:vim 文件 1 文件 2 文件 3.。

跳转:n 文件名

文件保存 w r

sp+ 文件名 多文件编写

gcc 编译器

和“”区别:搜索路径不同:前者在系统头文件目录《/usr/include》搜索, 若没有,就报错

后者在当前目录查找,若没有,再到系统头文件目录查找,若没有,就报错

规范:包含系统头文件“”包含自定义头文件

#if 0 // 注释  //#if 1// 取消注释
#endif

不同的处理器有不同的汇编

系统内的所有头文件都在 vim/user/include/ 头文件

gcc 概述:GNU 计划提供的编译器(Unix cc 编译器 )(编译工具链 g++ ld ldfd)–(交叉编译工具链)

什么是交叉编译?.c- .s- .o- elf

在宿主机下编译出在目标机下运行的代码的过程

在当前 CPU 平台下编译出在其它 CPU 平台运行的代码的过程

a\ 源文件到可执行经历了哪几个步骤?(预处理,编译,汇编,链接)b\ 预处理的任务:头文件展开(#include)、宏替换(#define)、条件编译(#ifdef)(# 开头的代码)c\ 编译的任务:检查语法。转成汇编、生成汇编文件(.s/.S)d\ 汇编的任务:编译汇编文件,生成目标文件(.o)e\ 链接的任务:链接所有目标文件,生成符号表,生成可执行文件 

编译选项

-o(可执行重命名:elf 格式?)

-E(编译器只进行预处理)

-I:指定头文件编译的第三方路径

-S: 进行编译阶段

-c: 进行到汇编阶段

-O1 -O2 -O3(编译优化):百度查分别做了什么

-w(关警告)-Wall(开警告): 开关警告信息

库文件

编译器 gcc(静态库的动态库的制作和使用)

调试器 gdb(常用命名,调用内存错误)

工程管理器 make(makefile 编写,多目录的 Makefile 的编写)

extern: 该函数在其它文件已经定义

库函数:printf scanf strcpy strcat(保存在库文件)

库文件:保存函数和变量,里面的函数和变量只能使用,但是看不到其实现

库文件分类:静态库(.a)和动态库(.so)

静态库(.a):保存的函数和变量,在编译阶段加载到可执行文件中

动态库(.so):保存的函数和变量,在执行阶段加载到执行文件中

使用静态库和动态库的区别(可执行文件的区别:)

使用静态库编译出来的执行文件 使用动态库编译出来的可执行文件大小 – 影响内存的开销

使用静态库编译出来的执行文件执行速度 使用动态库编译出来的可执行文件执行速度

使用静态库编译出来的执行文件升级 使用动态库编译出来的可执行文件升级

使用静态库编译出来的执行文件程序部署 使用动态库编译出来的可执行文件程序部署

库文件的存放路径:

系统运行所需要的库文件:/lib

第三方软件和工具运行所需要的库:/usr/lib

编译时,编译器会自动到这两个目录里找所需要链接的库文件

制作静态库:

将目标源文件编译成目标文件:gcc -c 目标源文件(可以多个)(gcc -c add.c)

使用 ar 工具制作静态:ar -rcs(库不存在就创建,存在就更新)所要生成的库文件的名字(lib+ 库名 + 后缀.a)目标文件

例:ar -rcs libadd.a add.o

使用静态库:

-l: 指定加载哪个静态库 - l 库名

-L:指定加载的库文件的存放路径

gcc 源文件 - l 库名 - L 库存放的路径

例:gcc demo.c -ladd -L./libls

工程管理器 make

什么是工程?

多个源文件 + 其他文件(图片 + 头文件 + 脚本文件)

工程管理器的作业:编译多个源文件

gcc + 所有源文件 -o 可执行文件 — 自动编译

make 依赖于 Makefile 文件;

Makefile 文件是一种脚本文件(批处理),存在相关语法

Makefile 语法:

三要素:目标、依赖、命令

格式:

目标:依赖

tab 命令

目标:最终生成的文件

依赖:生成目标时所需要的文件

命令:生成目标时,需要执行的命令

执行顺序:

make:默认从第一个目标体执行

make+ 目标体:从对应的目标体执行

如果目标体后面依赖的文件是一个目标的话,先执行依赖对应的目标,再执行目标体的命令

可以建 makefile 或者 Makefile make -f Makefile - f 指定执行那个 Makefile

Makefile:

注释:#

目标可以用 $@代替

多级目录下的 Makefile:

顶层 Makefile:总控 Makefile

子目录 Makefile:功能 Makefile

scripts 目录 Makefile:头文件 Makefile

总控 Makefile:进入各个功能子目录下执行 make 命令,将各个子目录下的.o 文件链接成可执行文件

功能 Makefile:将当前目录下的.c 文件编译生成.o 文件

头文件 Makefile:定义一些变量

以上就是“嵌入式 linux 开发工具怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,丸趣 TV 小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-12发表,共计2676字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)