在Lniux中编译代码的工具 —— vim和gcc/g++的使用

这篇具有很好参考价值的文章主要介绍了在Lniux中编译代码的工具 —— vim和gcc/g++的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

🌈前言

📁1. 什么是vim

📁2. vim的使用

vim的基本操作:

📁3. 命令模式下的命令集

📁4. 底行模式下的命令集

📁5. vim的个性设置 

📁6. gcc/g++的使用

📁 扩展:程序从编译到运行的翻译过程

预处理(进行宏替换):

编译(生成汇编):

汇编(生成机器可识别代码):

链接(生成可执行文件或库文件):

📁 扩展:函数库

📁 总结:


🌈前言

        这篇文章会围绕如何在Linux中编译和编辑代码进行讲解,其中会讲解vim是什么,vim的模式有哪些,在不同模式下的命令,以及如何个性化配置自己的vim,最后通过gcc/g++编译自己的代码。

        其中,文章会花费大长篇幅讲解vim在不同模式下的命令集,当然这也是非常简单的,不需要可以去记住,熟能生巧。

📁1. 什么是vim

        在Linux系统中,绝大部分的配置文件都是以ASCII的纯文本形式存在的,因此利用简单的文本编辑软件就能修改设置了,这就要求我们系统管理员至少要熟悉一种文本处理工具。

        什么是纯文本文件?文件记录的都是0和1,而我们编码系统讲这些0和1转成我们认识的文字,。纯文本文件中只有换行,制表符等少数格式控制字符和一般的可见字符。ASCII就是其中一种广泛使用的文字编码系统。

        那Linux有很多文本编辑器,如emacs,pico,nano与vim等。既然这么多,为什么要学习vim呢。接下来我们了解一下vim的优点吧。

        在介绍vim之前,我们还要说一下vim的前身vi,vi也是一款文本编辑器,因为太过于老旧,被vim所替代,你也可以将vim视为vi的高级版本。

vi / vim的优点:

        1. 所有的UNIX-like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在;

        2. 很多软件的编辑接口都会主动调用vi;

        3. vim具有程序编辑能力,可以主动以字体颜色辨别语法的正确性,方便程序设计;

        4. 因为程序简单,编辑速度快;

                                                                                                ——《鸟哥的Linux私房菜》

        举例来说,当你使用vim去编辑一个C语言程序文件时,vim会根据文件的扩展名或是文件内的开头信息,判断文件的内容而自动调用程序的语法判断样式,在以颜色来显示程序代码与一般样式,此外vim可以直接帮你进行程序出错(debug)功能。因此,vim也可以是程序编辑器。

        讲到这里,我们已经讲解了什么是vim,为什么要学vim了。总结一下,vim是一款文本编辑器,也是一款程序编辑器。通过学习vim,我们就可以在Linux上编辑我们的代码了。        

📁2. vim的使用

        vim的模式总共有12:命令模式(普通模式)插入模式(编辑模式)底行模式(命令行模式)替换模式可视模式。当然不同地方对这五个模式有不同的名称。这里我们只需要学习前三个即可。

vim编译代码,Linux杂货铺,编辑器,vim,linux,c语言,c++,学习,后端

● 命令模式:

        控制屏幕光标的移动,字符,子或行的删除。移动复制某区段进入Insert mode(插入模式)下,或者进入last line mode(底行模式)。

● 插入模式:

        只有在插入模式下,才可以进行文字的出入,按ESC可以返回命令模式。该模式也是我们后面最常频繁的编辑模式。

● 底行模式:

        文本的保存和退出,也可以进行文本替换,找字符,列出行号等操作。在命令模式下,按shift+;即可进入该模式。

vim的基本操作:

1.【正常模式】切换至【插入模式】:        

输入a:从当前位置的下一个位置进入【插入模式】

● 输入o:从当前行的下一行进入【插入模式】

输入i:从当前位置进入【插入模式】

2.【插入模式】切换至【正常模式】:

● 按ESC

【正常模式】切换至【底行模式】:

● shit + ;其实就是输入;

3. 退出vim

        先从【正常模式】切换至【底行模式】,再在底行模式下输入:

● w :保存当前文件。

● q! : 不存盘,强制退出。

● wq : 保存并退出。 

📁3. 命令模式下的命令集

进入插入模式:

● 按[ i ]切换进入插入模式,即从光标当前位置开始输入文件。

● 按[ a ]切换进入插入模式,即从当前光标的下一个位置开始输入文字。

● 按[ o ]切换进入插入模式,即插入新的一行,从行首开始输入文字。

从插入模式切换至命令模式:

● 按[ ESC ] 键

移动光标:

● vim可以使用键盘上的↑↓→←按键来控制上下左右移动,但正规的vim是用小写字母h , j , k , l ,分别控制光标的左,下,上,右移一格。

● G : 移动到文章的最后。

● shift + 4 ($) : 移动到光标所在行的行尾。

● shift + 6 (^):移动到光标所在行的行首。

● w:光标跳到下个字的开头。

● e: 光标跳到下个字的字尾。

● b:光标回到上个字的开头

● gg:回到文章的开始

● shift + g : 进入文章末端

删除文字:

● x:删除光标所在位置的一个字符。(从前往后)

● shift + x:从后往前删除光标所在位置。

● dd:删除光标所在行。

复制:

● yy : 复制当前行。

●p:拷贝当前行

替换:

● r:进入替换模式,替换光标所处的字符。

撤销上一步操作:

● u : 误执行一个命令,回到上一个命令。

● ctrl + r:撤销恢复,即撤销的撤销。

        以上操作部分可以带数字执行,即[ n ] + 命令,例如 4 + shift + g 就是跳转到第4行。这里为了不增加学习压力,所以没有上述命令没有给出,如果感兴趣可以下来自己实验。

📁4. 底行模式下的命令集

● 列出行号

        su nu

● 查找字符

        /字符

● 保存文件

        w

● 离开vim

        q: q就是退出,如果无法离开,就在后面+!,强制离开vim。

        wq:保存退出。

📁5. vim的个性设置 

        vim的原生配置可能不太齐全,所以使用起来并不是很方便,比如我们想用代码补齐,vim并不会自带,但是vim支持安装插件,我们可以选择安装插件来完善配置。

        这里,给大家推荐GiteeS上的一个项目,可以快速帮助大家完成个性配置:

VimForCpp: 快速将vim打造成c++ IDE,点进去后,下滑,找到一行指令,在Linux中输入即可,注意,要确保用户不能是root!!!否则,会出现兼容性等一系列问题。

📁6. gcc/g++的使用

        以上,我们对vim有了一定了解,vim是一款文本编辑器和代码编辑器,编辑好我们的代码后,我们就要对代码进行编译,gcc/g++就是用来编译我们代码的工具。

        gcc:编译C语言代码

        g++:编译C/C++语言代码。

        这里扩展一下,C++程序文件,可以是.cc,.cxx,.cpp为后缀名的。当然Linux系统是不以后缀名区分文件的,但是vim和gcc/g++这些软件会区分。

格式 : gcc/g++  [选项] 要编译的文件 [选项] [目标文件]

        一般情况下,不指定文件名,只需要gcc/g++ filename即可,默认生成a.out可执行文件。当然我们也可以带上-o 选项,即可命令生成的可执行文件。

📁 扩展:程序从编译到运行的翻译过程

vim编译代码,Linux杂货铺,编辑器,vim,linux,c语言,c++,学习,后端

        以上代码经过预处理,编译,汇编,链接生成我们的可执行程序。

预处理(进行宏替换):

实例: gcc –E hello.c –o hello.i

●预处理功能主要包括宏定义,文件包含,条件编译,去注释等。
●预处理指令是以#号开头的代码行。
●选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。
●选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序。

编译(生成汇编):

实例: gcc –S hello.i –o hello.s

在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查
无误后,gcc 把代码翻译成汇编语言。
用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。
 

汇编(生成机器可识别代码):

实例: gcc –c hello.s –o hello.o

汇编阶段是把编译阶段生成的“.s”文件转成目标文件
读者在此可使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码了

链接(生成可执行文件或库文件):

gcc hello.o –o hello
在成功编译后,就进入了链接阶段。

📁 扩展:函数库

        在C语言中,我们知道,printf是库函数的一种,但在程序中,没有定义printf函数的实现,且在预处理阶段包含的“stdio.h”中也只有函数的声明,而没有定义函数的实现,那么哪里实现printf函数呢?

        在Linux系统中,这些函数的实现都被做到名为libc.so.6的库文件中去了,在没有特别指定时,gcc回到系统默认搜索路径“/usr/lib”下进行查找,也就是连接到libc.so.6库函数中去,这样就能实现printf函数了,而这也就是链接的作用。

函数库一般分为静态库和动态库两种:

        ● 静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为“.a”
        ● 动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为“.so”,如前面所述的 libc.so.6 就是动态库。

        gcc默认生成的二进制程序,是动态链接的。

📁 总结:

        以上,我们对Linux中如何编辑和编译代码做了解,也给出如何操作vim即gcc/g++,同样的也给出两个扩展。同样的,这两个扩展也是非常重要的,对于一名合格的Linux,C/C++工程师来说,了解这些是非常有必要的。因为本文的重点不是这,所以也只是粗略的讲解了一下,并没有深入讲解。如果大家对此感兴趣,可以再评论区留言讨论,博主会对此发布新文章进行讲解。

        最后,希望大家在评论区积极讨论,点赞,收藏,关注Thanks♪(・ω・)ノ

vim编译代码,Linux杂货铺,编辑器,vim,linux,c语言,c++,学习,后端文章来源地址https://www.toymoban.com/news/detail-829567.html

到了这里,关于在Lniux中编译代码的工具 —— vim和gcc/g++的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux:详解(yum的使用、vim编辑器命令集合以及gcc/g++编译器的使用)

            在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.         但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这

    2024年02月05日
    浏览(81)
  • Linux开发工具-vim-gcc-gdb指令及使用

    目录 linux软件包管理器yum(apt) linux开发工具 linux编辑器-vim使用 linux编译器-gcc/g++使用 linux调试器-gdb使用 linux项目自动化构建工具-make/makefile linux第一个小程序-进度条 使用github创建项目 使用git命令 我们前面学了关于linux的基本指令和基本权限的一些相关知识,那么我们今天

    2024年03月10日
    浏览(56)
  • Linux基础环境开发工具的使用(yum,vim,gcc,g++)

    首先先说明一点: Centos系统适用于yum 而Ubanto适用于apt-get 在Linux中我们也要进行工具/程序/指令的安装,检查和卸载, 而我们安装软件的方式: 1.源代码安装-需要进行交叉编译的工作 一般那些很强的程序员中的大佬才能拿捏 2.rpm包直接安装,也很麻烦 3.yum直接安装 这就需要用到y

    2024年02月06日
    浏览(43)
  • Linux系统vim,gcc,g++工具使用及环境配置,动静态库的概念及使用

    所属专栏:Linux学习❤️ 🚀 博主首页:初阳785❤️ 🚀 代码托管:chuyang785❤️ 🚀 感谢大家的支持,您的点赞和关注是对我最大的支持!!!❤️ 🚀 博主也会更加的努力,创作出更优质的博文!!❤️ 如果你的Linux下还没有安装vim,则执行下面指令: sudo yum install -y vim

    2024年02月04日
    浏览(30)
  • Linux基础工具的使用(yum,vim,gcc,g++,gdb,make/makefile)【详解】

    1.在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。 2.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包

    2024年01月17日
    浏览(46)
  • [linux初阶][vim-gcc-gdb] TwoCharter: gcc编译器

    目录 一.Linux中gcc编译器的下载与安装 二.使用gcc编译器来翻译 C语言程序  ①.编写C语言代码 ②翻译C语言代码 a.预处理 b.编译  c.汇编  d.链接 ③.执行Main 二进制可执行程序(.exe文件)  三.总结  使用yum命令(相当于手机上的应用市场)来进行安装.  下载完毕之后,使用 which gc

    2024年04月10日
    浏览(52)
  • 【Linux】Linux环境基础开发工具的使用 ———(yum、vim、gcc&g++、gdb、make/Makefile、进度条 、git)

    (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是 Scort 🎓 🌍博客主页:张小姐的猫~江湖背景🌍 快上车🚘,握好方向盘跟我有一起打天下嘞! 送给自己的一句鸡汤🤔: 🔥集中起来的意志可以击穿顽石🔥 🙏作者水平很有限,如果发现错误,可在评论区指正,感谢🙏 🎉🎉欢迎持续关注!🎉🎉

    2024年01月16日
    浏览(49)
  • 【Linux】工具介绍——vim及gcc

    在Linux操作系统之中有很多使用的工具,我们可以用vim来进行程序的编写,然后用gcc来生成可执行文件,最终运行程序。本文来带大家了解 vim和gcc ,以及 自动化构建工具Makefile ,这三个工具的使用方法。 在vim编译器中有很多不同的模式让我们进行操作,最为常用的模式有三

    2024年02月12日
    浏览(33)
  • Linux 开发工具vim、gcc/g++、makefile

    目录 Linux编辑器-vim 1. 基本概念 2. 基本操作 3. 正常模式命令集 4. 末行模式命令集 5. 其他操作 6. 简单vim配置 Linux编译器-gcc/g++ 1、基本概念  2、程序翻译的过程 3. gcc如何完成程序翻译 4、动静态库  Linux项目自动化构建工具-make/Makefile 1、背景 2、创建makefile 3、原理 5、项目清

    2024年03月11日
    浏览(63)
  • Linux---(五)三大工具yum、vim、gcc/g++

    (1)源代码安装(不推荐):把源代码编译,形成可执行,编译太麻烦 (2)rpm软件包安装(不推荐):安装的本质就是拷贝,把可执行程序拷贝到指定路径下即可(不知道下载哪个软件包,不知道哪个软件包是对的,不知道某个软件是否还依赖其他软件) (3)yum一键式安

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包