Linux中的yum和gcc/g++

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

一、快速认识yum(简单介绍)

在Linux中,我们也要进行工具/指令/程序、安装、检查、卸载等等,需要使用到yum

在Linux中安装软件的方式:

  1. 源代码安装——交叉编译的工作
  2. rpm包直接安装
  3. yum/apt-get

yum:yum是我们Linux预装的一个指令,用来搜索、下载、安装对应的软件

就比如,手机上应用商店——也是一个app,并且是厂商内置的。

总而言之,yum相当于Linux的应用商店!

二、快速的使用yum(三板斧)

  1. yum list | grep command
  2. yum install [-y] command(这里的-y可加可不加)
  3. yum remove command   

注意后面的两条语句需要root权限操作,或者加上sudo.


三、Linux编辑器-vim的使用

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且
还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。

1、vim的基本概念

我们目前只需要掌握vim的三种模式,分别是命令模式、插入模式和底行模式。

  • 命令/正常/普通模式 :控制屏幕光标的移动,字符‘字或行的删除。(vim打开的时候,默认的模式)
  • 插入模式:只有在插入模式下,才可以做文字输入,该模式是我们后面用的最频繁的编辑模式
  • 底行模式:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。

Linux中的yum和gcc/g++,linux,运维,服务器

想要回到命令模式,无脑Esc即可。

命令模式转到插入模式输入 o / i / a

命令模式转到底行模式输入 shift+; 也就是:

2、讨论常见模式——命令、底行

命令模式:

Linux中的yum和gcc/g++,linux,运维,服务器底行模式:

保存文件
「w」: 在冒号输入字母「w」就可以将文件保存起来
离开vim
「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

!command :在不退出vim的前提下,执行操作

vs filename :文件替换,光标在哪一个界面,我们就正在编辑哪一个界面,底行也是一样。

CTRL + ww : 光标多终端切换

shift zz = ZZ : 保存并退出vim

批量化注释:

  1. ctrl v
  2. hjkl区域选择
  3. shift + i  = I
  4. //
  5. Esc

批量化去注释

  1. CTRL v
  2. hjkl 区域选择
  3. d

Linux编译器-gcc/g++使用

C语言建议使用gcc,当然也可以使用g++;但是C++语言只能使用g++编译器编译

一、程序的翻译过程

1、预处理(进行宏替换)

预处理功能主要包括宏定义、文件包含、条件编译、去注释等。
预处理指令是以#号开头的代码行。

所谓的头文件展开,本质是在预处理的时候,将头文件内容拷贝至源文件

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

选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。
选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序。

2、编译(生成汇编)

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

扩展:条件编译

用途1:动态裁剪

Linux中的yum和gcc/g++,linux,运维,服务器

我们可以通过给编译器传递不同的宏值,来进行对代码的动态裁剪。

比如一个程序有两个版本,商业版和普通版,这两者的区别就是商业版有更多的功能。这时候需要我们用两份代码去调试吗?

如果用两份代码,费力费时间。

而我们采用传递不同的宏值去进行代码的动态裁剪即可用一份代码!

用途2:防止头文件被重复包含

Linux中的yum和gcc/g++,linux,运维,服务器

也是通过条件编译去检查头文件是否重复包含,如果没有包含头文件,就执行下面的代码,如果已经包含头文件,下面的代码不去执行。

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

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

4、链接

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

函数库:

问题:

我们的C程序中,并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实“printf”函数的呢?

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

动静态库的比较:

动态库:(动态链接)

优点:比较节省资源,不会出现太多的重复代码

缺点:对库的依赖性比较强,一旦库丢失,所有使用这个库的程序都无法运行

静态库:(静态链接)

优点:不依赖库,同类型平台中都可以直接运行使用。

缺点:可执行程序体积比较大,比较浪费资源(资源磁盘、内存、网络等资源)


扩展:语言和编译器的自举的过程

问:先有的语言,还是先有的编译器?

答案是先有的语言。

比如先创造了C语言,然后我们用低级语言(汇编代码)写一个能编译C语言的编译器,这样我们就可以写软件了,接着用这个编译器去写一个用C语言写的编译器即可。

上述过程就是语言和编译器的自举过程。

二、gcc选项

-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
-S 编译到汇编语言不进行汇编和链接
-c 编译到目标代码
-o 文件输出到 文件
-static 此选项对生成的文件采用静态链接
-g 生成调试信息。GNU 调试器可利用该信息文章来源地址https://www.toymoban.com/news/detail-856385.html

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

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

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

相关文章

  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(67)
  • Linux服务器常见运维性能测试(1)综合跑分unixbench、superbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月04日
    浏览(82)
  • Linux本地部署1Panel服务器运维管理面板并实现公网访问

    1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等 下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面 执行如下命令一键安装 1Panel: 安

    2024年02月04日
    浏览(98)
  • [1Panel]开源,现代化,新一代的 Linux 服务器运维管理面板

    本期测评试用一下1Panel这款面板。1Panel是国内飞致云旗下开源产品。整个界面简洁清爽,后端使用GO开发,前端使用VUE的Element-Plus作为UI框架,整个面板的管理都是基于docker的,想法很先进。官方还提供了视频的使用教程,本期为大家按照本专栏的基本内容进行多方面的测评。

    2024年02月07日
    浏览(94)
  • Linux中的工具:yum,vim,gcc/g++,make/makefile,gdb

    目录 1、yum 1.1 查看软件包:  1.2 安装软件包 1.3 卸载软件 2、vim 2.1 vim的三种模式 2.2 vim的基本操作 2.3. vim正常模式命令集 2.3.1 插入模式 2.3.2 移动光标 2.3.3 删除文字 2.3.4 复制 2.3.5 替换 2.3.6撤销上一次操作 2.3.7 更改 2.3.8 跳至指定的行 2.4. vim末行模式命令集 3、gcc/g++ 3.1 预处理

    2024年02月10日
    浏览(46)
  • Linux服务器常见运维性能测试(3)CPU测试super_pi、sysbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月02日
    浏览(55)
  • 华为云云耀云服务器L实例评测 | Linux系统宝塔运维部署H5游戏

    本章节内容,我们主要介绍华为云耀服务器L实例,从云服务的优势讲起,然后讲解华为云耀服务器L实例资源面板如何操作,如何使用宝塔运维服务,如何使用运维工具可视化安装nginx,最后部署一个自研的H5的小游戏(6岁的小朋友玩的很开心😁)。 前端的同学如果想把自己

    2024年02月07日
    浏览(58)
  • Linux中的开发工具(yum,vim,gcc/g++,gdb,Makefile,git)

    yum(Yellow dog Updater,Modified)是Linux下非常常用的一种 包管理器 。主要应用在Fedora,RedHat,Centos等发行版上。 和手机上的软件商店类似,我们可以使用 yum 来下载各种我们想要的软件包。使用 yum 时必须联网。 yum 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装

    2024年02月08日
    浏览(45)
  • 重新启动Linux服务器中的 ES

    ES不支持直接重启,只能先结束掉进程,再运行脚本重启。 下面是操作的过程: 1、先查找出服务器的ES进程,可以用以下两个命令进行查找: 紧跟指令 jintaiyang+  的 15870就是我们需要查找的ES 服务进程 pid 2、结束ES进程 kill -9 pid(进程号,此处是15870) 3、重新启动ES ( 注意:

    2024年02月05日
    浏览(36)
  • 服务器如何下载百度网盘文件?Linux服务器如何在百度网盘中连接、上传下载;在Linux服务器上下载百度云盘中的资料

    百度云提供Python包bypy进行远程服务器的对接然后下载: https://github.com/houtianze/bypy 可以通过pip直接下载,授权本人的百度云账号后,就可以直接使Linux电脑本地文件与百度网盘的apps(我的应用数据)/bypy目录下的文件进行上传与下载的交互了。 本文简单介绍其相关的使用方式

    2024年02月06日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包