从入门到精通:解锁Linux开发工具和编译器的力量

这篇具有很好参考价值的文章主要介绍了从入门到精通:解锁Linux开发工具和编译器的力量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

从入门到精通:解锁Linux开发工具和编译器的力量

一.编辑器vim的使用

1.vim的基本概念

vim是一个方便编程的功能特别丰富的文本编辑器,凭借他简洁的三种模式以及丰富的快捷键操作,可使得熟练使用的人做到不使用鼠标完成代码的编写,所以深受人们喜爱。

2.vim的使用

vim是一个多模式的编辑器——命令行模式、插入模式、底行模式。三种模式的转换及关系如下:
从入门到精通:解锁Linux开发工具和编译器的力量
下面在xshell下演示下,我们先创建个文件并用vim打开:
从入门到精通:解锁Linux开发工具和编译器的力量

从入门到精通:解锁Linux开发工具和编译器的力量
现在我们就进入了vim的命令模式,接着输入i就直接进入的插入模式,现在我们就能编写代码了。我们写入一段简单的代码进行功能演示:
从入门到精通:解锁Linux开发工具和编译器的力量
接着我们输入Esc退出插入模式,进入命令模式在输入进入底行模式后输入wq将文件保存并且退出vim编辑器。
从入门到精通:解锁Linux开发工具和编译器的力量
我们用cat显示出我们刚刚编写的代码内容:
从入门到精通:解锁Linux开发工具和编译器的力量
显然我们成功向文件写入了一段代码并保存了下来。
在命令模式下还有诸多快捷的操作如下:

gg:将光标定位到开头
G:将光标定位到结尾
n+G:将光标定位到第n行
shift+$(4):将光标定位到当前行结尾
shift+~:将光标定位到行开头
(n)yy:可复制当前光标所在起n行
(n)dd:可删除当前光标所在起n行
(n)p:粘贴复制的内容(重复n次)到当前光标的下一行
u:可撤销上一步
ctrl+r:撤销之前的撤销
shirt+~: 大小写转换
(n)r: 对光标字符+n之后的所有字符进行批量化替换
shirt+R : 换模式,对内容进行整体瑟换 --> 第四种模式
(n)x: 对光标字符之后的字符进行删除

在vim中我们想要进行多文件编辑时,可以在底行输入vs并命名即可。使用ctrl+ww可以切换到不同的窗口进行开发。
从入门到精通:解锁Linux开发工具和编译器的力量

二.编译器gcc/g++

1.编译器的使用

我们可以使用编译器gcc/g++来编译上面编写的代码:
从入门到精通:解锁Linux开发工具和编译器的力量
gcc和g++的区别即是gcc只可编译C语言无法编译c++而g++编译器都可以编译。在接下来的学习中可得知gcc无法编译c++是缺少关于c++的头文件、库文件所导致的。

2.编译器是如何完成的?

在之前的学习中,我们知道编译器在生成可执行程序前经历过以下几个阶段:预处理、编译、汇编、链接
我们可以使用选择不同的编译器选项,演示编译的不同阶段:
从入门到精通:解锁Linux开发工具和编译器的力量
-E可以让编译器进行到预处理工作完成后停止对程序的翻译,这时候我们用vim观察.i文件的内容。
从入门到精通:解锁Linux开发工具和编译器的力量
原本短短的几行代码,经过预处理竟然变成了近乎一千行的代码。我们知道预处理阶段会进行:去注释、头文件的展开、条件编译和宏替换,显然是头文件的展开造成了代码体积的增大
接着对预处理后的文件进行编译使得生成汇编文件,接着就能我们常在底层看到的汇编语言。
从入门到精通:解锁Linux开发工具和编译器的力量

从入门到精通:解锁Linux开发工具和编译器的力量
接着对编译后的文件进行汇编操作生成机器码(二进制码)。
从入门到精通:解锁Linux开发工具和编译器的力量
我们用vim打开机器码也是无法识别的乱码。
从入门到精通:解锁Linux开发工具和编译器的力量
接着进行链接生成可执行程序
从入门到精通:解锁Linux开发工具和编译器的力量
到这里我们就不免想知道链接的过程是如何实现的呢?
链接的过程就是由库来提供方法头文件提供方法的声明+库文件提供方法的实现再加上你的代码即可实现一定的功能。

3.动态库与静态库

而库又分为动态库静态库。它们各有各自的特点:

动态库:
动态库不能缺失,一旦对应的动态库缺失,影响的不止一个程序可能导致很多程序都无法进行正常运行!
静态库:
在使用 静态库进行静态链接的时候,会将自己的方法拷贝到目标程序中,该程序以后不用再依赖静态库,直接只用程序中拷贝好的方法即可。

接下来在Linux下演示动态链接与静态链接的区别:

ldd作用:
用于打印程序或者库文件所依赖的共享库列表。

从入门到精通:解锁Linux开发工具和编译器的力量

如上演示我们可得:
在Linux中,编译形成可执行程序,默认采用的就是动态链接-- 提供动态库
在Linux中,如果要按照静态链接的方式,进行形成可执行程序,需要添加-static选项 – 提供静态库还需注意的是gcc/g++默认优先动态链接,如果加上-static可以改变此次的优先级进行静态链接。但是linux默认只会安装动态库,在没有静态库的情况下是无法修改优先级的。

动态库与静态库的比较:
动态库因为是共享库,有效的节省资源(磁盘空间,内存空间,网络空间等)[优] 动态库一旦缺失,导致各个程序都无法运行[缺]
静态库,不依赖库,程序可以独立运行[优点],体积大,比较消耗资源[缺]文章来源地址https://www.toymoban.com/news/detail-515139.html

到了这里,关于从入门到精通:解锁Linux开发工具和编译器的力量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • AUTOSAR从入门到精通-【应用篇】基于Vector工具链车载总线自动化测试平台的研究与开发

    目录 车载总线发展现状 自动化测试平台的发展趋势 国内外研究现状

    2024年02月16日
    浏览(38)
  • 【Python入门】搭建开发环境-安装Pycharm开发工具

    前言 📕作者简介: 热爱跑步的恒川 ,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于Python零基础入门系列,本专栏主要内容为Python基础语法、判断、循环语句、函数、函数进阶、数据容器、文件操作、异常模块与包、数据可视化等,

    2024年02月04日
    浏览(35)
  • 【Linux】Linux开发工具(一)——vim工具

     作者:一个喜欢猫咪的的程序员   专栏:《Linux》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》 目录  1.什么是vim 1.1什么是vim 1.2vim和vi的区别:  2.vim基础  2.1vim是否安装 2.2vim的模式 2.3上下左右移动 2.4缓冲区

    2024年02月02日
    浏览(44)
  • <Linux开发> linux开发工具-之-I2C TOOLS工具使用

    <Linux开发> linux开发工具-之-I2C TOOLS工具使用 <Android开发> Android开发工具- 之-I2C TOOLS工具使用 <Linux开发>驱动开发 -之- Linux I2C 驱动 在笔者的另一篇文章 <Android开发> Android开发工具- 之-I2C TOOLS工具使用讲解过,如何在android上使用I2C TOOLS工具。本文主要是分析如何在

    2024年02月16日
    浏览(40)
  • VsCode开发工具的入门及基本使用

    大家好,我是[阿猫的故乡]。很高兴能有机会与大家分享关于VsCode开发工具的入门及基本使用的知识。 文章目录 文章目录 前言 一、VsCode是什么? 二、使用步骤 1.如何下载 2.如何使用 总结 在开发者社区中,Visual Studio Code(简称VS Code)已经成为最受欢迎的文本编辑器之一。作

    2024年02月02日
    浏览(56)
  • Linux基础开发工具之Linux自动项目构建工具的使用

    目录 前言 1.make/makefile 1.1 依赖关系/依赖方法 2.原理 3.项目清理  4.make的执行问题  5.相关简单的符号介绍 总结   之前给大家介绍了我们在开发过程中所需要使用到的编辑器vim,以及编译器gcc/g++的使用,但是我相信大家在使用过程会发现我们在每次编写好一份代码时总是需

    2024年02月13日
    浏览(28)
  • 【Linux】Linux开发工具vim

    🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专栏:Linux入门到精通 🎉代码仓库:小智的代码仓库 vim是一款多模式的编辑器,vim的模式有很多,我们只需要掌握三种常用的模式就可以了,分别是 命令模式、插入模式、底行模式 ,没有经过配置的

    2024年02月06日
    浏览(37)
  • 【hello Linux】Linux开发工具

    目录 1. vim:文本编辑器 1.1 各种模式的切换 补充:ctrl r命令 1.2 命令模式的操作 1.3 插入模式的操作 1.4 底行模式的操作 1.5 配置vim环境 1.6 配置亲属关系 2. gcc/g++:编译器 2.1 预处理: 2.2 编译: 2.3 汇编: 2.4 链接: 2.5 执行可执行程序 2.6 函数库 3. gdb:调试器 3.1 调试:gdb 可

    2023年04月14日
    浏览(20)
  • Linux开发工具使用

    1.vim的基本概念 vim是一款多模式的代码编辑器,进行代码编辑时有语法高亮。 vim具有多种模式,这里讲一下最常用的三种 命令模式 vim打开文件默认的模式,控制光标的移动,配合指令来进行文本删除和复制等功能。 插入模式 命令模式下按i键进入插入模式,可以做文字输入

    2024年02月16日
    浏览(42)
  • Java开发小白入门前的工具安装

    学习过程是痛苦的, 我们要学会苦中作乐! 关于java语言的基本介绍百度上都有,拉出来的都很详细,不做过多的介绍,我想写的主要是以干活为主,大家一起学习java 的知识。 编程的学习主要还是要靠自己勤劳的双手------敲代码,一遍又一遍的把代码敲出来,直到它成为你

    2024年04月16日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包