• 技术文章 >运维 >linux运维

    嵌入式linux开发工具有哪些

    藏色散人藏色散人2023-03-17 09:43:15原创114

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

    本教程操作环境:linux5.9.8系统、Dell G3电脑。

    嵌入式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(脱离鼠标)

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

    vim /etc/vim/vimrc

    安装插件

    命令行: 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/头文件

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

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

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

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

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

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

    -S:进行编译阶段

    -c:进行到汇编阶段

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

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

    库文件

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

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

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

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

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

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

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

    库文件的存放路径:

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

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

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

    制作静态库:

    例:ar -rcs libadd.a add.o

    使用静态库:

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

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

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

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

    工程管理器make

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

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

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

    格式:

    目标:依赖

    tab 命令

    目标:最终生成的文件

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

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

    执行顺序:

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

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

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

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

    Makefile:

    注释: #

    目标可以用$@代替

    d047452956c8f62b7083189265c2c7d.jpg

    42d22545d60ea119fef6d12cfd1b10a.jpg

    5847509ee6503919d54df75cdd86a9f.jpg

    4d33b4117d350b4e781311ba376b229.jpg

    a4ccbd772e7c8738d710c8024cb28cf.jpg

    多级目录下的Makefile:

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

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

    头文件Makefile:定义一些变量

    相关推荐:《Linux视频教程

    以上就是嵌入式linux开发工具有哪些的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:linux
    上一篇:linux中bin目录是什么 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • linux没有c盘么• linux软件安装在哪个目录• linux光盘无法挂载怎么办• linux openvpn是什么• linux中bin目录是什么
    1/1

    PHP中文网