linux软件开发工具

本文介绍了Linux系统中的文本编辑器Vim及其三种模式,详细阐述了GCC工具链的预处理、编译、汇编和链接四个步骤,以及在软件开发中make工具和GDB调试器的重要作用。通过理解这些基础知识,开发者可以更高效地进行程序开发和调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这本阿里P8撰写的算法笔记,再次推荐给大家,身边不少朋友学完这本书最后加入大厂:

Github 疯传!史上最强悍!阿里大佬「LeetCode刷题手册」开放下载了!

vi编辑器是Linux系统上常用的文本编辑器 vim 是vi的改进版本,增加了很多扩展功能,使之更适合编辑各种程序语言的源代码。 vim官方:vim不是文字处理软件,而是程序开发工具

Vi/vim命令模式的分类

一般模式(打开vi时默认进入一般模式)     可以移动光标,可以删除文字,可以复制粘贴(通过命令)     命令输入完毕就执行,不需要回车确认。执行完毕后还在一般模式下。

     插入(编辑)模式          在一般模式下,输入【a,A,I,i,o,O,r.R】,可进入编辑模式。      输入模式下按ESC,可返回命令模式。

 底行命令模式      作用:将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。      在一般模式下输入":"或者"/"为前导指令,出现在屏幕的最下一行,任何输入都被当成特别指令。     输入命令需要回车确认才执行,执行完毕后返回一般模式。

 

 

GCC工具链

GNU/Linux系统上常用的编译工具是GCC。GCC实质上不是一个单独的程序,而是多个程序的集合,因此通常称为工具链。    

从C语言源码到可执行程序一般要经过以下的处理步骤:

  1. 预处理 在这一阶段,源码中的所有预处理语句得到处理,例如  #include语句所包含的文件内容替换掉语句本身  所有已定义的宏被展开  根据#ifdef,#if等语句的条件是否成立取舍相应的部分     预处理之后源码中不再包含任何预处理语句。     GCC预处理阶段可以生成.i的文件,通过选项-E可以使编译器在预处理结束时就停止编译。例如: gcc -E hello.c  -o hello.i    

  2. 编译 这一阶段,编译器对源码进行词法分析、语法分析、优化等操作,最后生成汇编代码。这是整个过程中最重要的一步,因此也常把整个过程称为编译。     可以通过选项-S使GCC在进行完编译后停止,生成.s的汇编程序。例如: gcc -S hello.c  -o hello.s    

  3. 汇编 这一阶段使用汇编器对汇编代码进行处理,生成机器语言代码,保存在后缀为.o的目标文件中。     当程序由多个代码文件构成时,每个文件都要先完成汇编工作,生成.o目标文件后,才能进入下一步的链接工作。     目标文件已经是最终程序的某一部分了,只是在链接之前还不能执行。可以通过-c选项生成目标文件: gcc -c hello.c -o hello.o    

  4. 链接 链接的主要内容是把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确地衔接。

    比如:hello程序调用了printf函数(标准c库中的一个函数)

    而printf函数存在于一个名为printf.o的单独的目标文件中。

链接器负责并入printf.o,结果得到hello文件,使其成为一个可执行目标文件(或者简称为可执行文件)。 gcc hello.c   -o hello

 

make工具

假设:一个软件工程包含几十上百个文件,我每次调试只修改其中几个个文件,如果用简单的GCC编译器,会有什么麻烦?

1用GCC再次编译时,其他没有修改的文件也要进行再次编译,浪费时间。 2.每次都要输入很长的GCC命令,使用麻烦。

     解决办法:使用make工具,解决以上两个问题

    make工具的基本用法如下: make [-C dir] [-f file] [target ...] -C dir: 执行时进入dir目录,默认是当前目录 -f file: 使用file作为Makefile target: 要完成的目标,目标在Makefile中定义,默认是定义的第1个目标      

 

GDB调试工具 GDB是GNU的调试工具,它可以跟踪被调试的程序,进行设置断点、单步执行等操作。当程序暂停执行时,可以使用命令查看程序中的变量值、CPU的寄存器值、内存的值以及函数调用栈等信息。      使用GDB调试可执行文件之前:     被调试的应用程序在编译时使用-g参数将调试信息编入目标文件中: gcc -g app.c -o app 用以下命令启动对程序app的调试: gdb app

启动后进入GDB交互界面,可以输入GDB的命令开始调试,常用命令如下,通常直接回车就是重复上一条命令。     

———————————————— 版权声明:本文为优快云博主「打南边来的」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.youkuaiyun.com/qq_42717879/article/details/81220416

这本阿里P8撰写的算法笔记,再次推荐给大家,身边不少朋友学完这本书最后加入大厂:

Github 疯传!史上最强悍!阿里大佬「LeetCode刷题手册」开放下载了!

以上就是良许教程网为各位朋友分享的Linux相关知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值