Linux gcc 6

news2024/11/18 2:36:51

本章开始学习工具

什么是工具?

本质也是指令

yum 命令

小火车

sudo yum install sl(安装sl)

sudo yum install -y sl  //直接yes就不提示了

yum list  //将yum源上的软件都穷举出来

yum search sl //结果不友好,不推荐

yum list | grep sl //将于sl匹配的才列举出来

yum list | grep | more

yum remove sl //交互卸载

yum remove -y sl //直接卸载

rz命令

sz命令

就实现了windows和Linux互传文件了

也可以实现Windows拖拽到Linux上传但是要安装lrzsz这个软件

第一步 先yum list | grep Irzsz  查看一下这个软件

第二步 sudo yum -y lrzsz

yum install epel-release     //扩展非官方软件  如sl小火车

yum的扩展

好像只告诉了yum我要安装什么!并没有直接告诉yum要安装的软件,在哪里下载?

yum要知道实际要到哪里去找

所以我们需要知道一个叫yum源的配置文件

/etc/yum.repos.d/下的

CentOS-Base.repo//基础yum源,里面包含了大量了下载连接

打开

l修改yum源为国内镜像_yum修改镜像源-CSDN博客

了解下

服务器的配置好了

 

(记得要备份)

能在Centos-base.repo搜索出来的都是官方软件

yum install -y epel-relsease   //拓展非官方的

vim编辑器的学习

基本模式的基本理解

命令模式的意义:

提高效率

光标定位法

shift+6(^) =行的首位

shift+4(¥)=行的末尾

shift+g=文本最结尾

gg

n + shift +g = 跳转到指定的第n行

光标移动:

h:左

j:下    (jump悬崖跳下)

k:上     (king->皇上高高向上)

l:右

为什么会有这四个键呢?

老式键盘

vim命令下如何复制

在复制行按下yy(完成复制)【nyy多行复制】

p是粘贴【n(数字)p是粘贴n次(多行粘贴)】

u:撤销

dd:删除光标所在行(支持ndd从光标到第n行)

ndd + p:剪切

文本编辑:

大写小写切换:shift+ ~

shift +r=R:批量化替换

r:替换光标所在的一个字符,支持nr

nr:

行内删除:

shift+x=X:行内前删

x行内后删

支持nx or nX

也可以支持p回来

出现这个:

直接退出

:wq!

补充:

w:向后按照单词移动   b:向前按照单词移动

cw:将光标中的单词删除并进入insert模式

c#w:将光标中的#个单词删除并进入insert模式

u:撤销

ctrl+r:撤销一个u操作

命令模式进入插入模式

命令-》插入

i/a/o......................

 底行模式

:set nu(调出行号)

:set nonu(取消行号)

:w(写入)q(退出) !(强制退出)  实在不行只能:!说明不是你的文件

:vs [文件名]   //分屏 

在命令模式下

可以在底行模式下执行shell命令

:![命令] 

 //:!ls     :!man  在vim下查看编译执行  :!gcc  :!./a.out

底行中的替换操作

:%s/###/***/g                    (将###替换成***)

了解vim配置

1、vim的配置,是一人一份的,一个用户的配置是自己的

2、每一个人虽然用的是同一个vim程序,但是,大家用的是不同的vim配置(每一个用户,在自己家目录下,都有一个属于自己的配置文件vimrc)

3、所谓的vim基本配置,就是修改自己的.vimrc(不要动任何不属于你的配置文件)

4、我怎么知道要配置什么呢?(自己去搜索)

所以要自己创建touch .vimrc

vim test.c 就有行号了

修改vim配置

简单了解就好

打开gitee

Gitee 搜索

搜索vimforcpp

进入下拉有vim配置的安装直接配置好的

下拉自己看

支持环境

目前只支持 Centos7 x86_64. 后面会考虑 Ubuntu 等发行版的支持.

安装方法

在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 "不推荐" 直接在 root 下执行):

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

需要按照提示输入 root 密码. 您的 root 密码不会被上传, 请放心输入.

如果出现curl: command not found就是curl没有安装

curl: command not found解决方法-腾讯云开发者社区-腾讯云 (tencent.com)

centos7:sudo yum install -y curl

接下来就可以安装了

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

配置完成

改一下安装好后改下缩进 (可以自己改一下vimrc文件)

---------------------------------------------------------------------------------------------------------------------------------

gcc/g++

1、复习一下程序的翻译过程

预处理(头文件展开、去注释、宏替换、条件编译)

、编译

、汇编

、连接

预处理

gcc -E test.c -o test.i    

预处理将头文件需要的都导入到源程序中,可以说预处理后不需要头文件了

预处理会将头文件拷入源文件

在调用头文件时,系统必须要有库,才可以调用

宏的命令行定义

预处理后还是c语言是一份干净的c语言

编译

所以接下来就是要编译:把c翻译汇编语言

gcc -S test.c -o test.s  //现在开始,进行程序的翻译,做完汇编之后停下

汇编

汇编语言可以被计算机直接执行吗? 

不可以,汇编语言是有了助记符不是二进制目标

gcc -c test.s -o test.o    //将汇编语言转化为二进制定向目标文件

Linux od命令教程:如何以各种格式转储文件(附案例详解和注意事项)_od linux-CSDN博客

二进制目标文件不能被执行

链接

把你写的代码和c标准库中的代码合起来-------链接的过程

gcc test.o

总结:

不好记

程序翻译的过程键盘的左上角:ESc()

文件后缀   lso(镜像的后缀)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1594672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能革命:未来人工智能创业的天地

智能革命:未来人工智能创业的天地 一、引言 在这个数字化迅速变革的时代,人工智能(AI)已经从一个边缘科学发展成为推动未来经济和社会发展的关键动力。这一技术领域的飞速进步,不仅影响着科技行业的每一个角落,更是为创业者提供了…

PTA 2813:画家问题(熄灯问题)

有一个正方形的墙,由NN个正方形的砖组成,其中一些砖是白色的,另外一些砖是黄色的。Bob是个画家,想把全部的砖都涂成黄色。但他的画笔不好使。当他用画笔涂画第(i,j)个位置的砖时, 位置(i−1,j)、 (i1,j)、(i,j−1)、(i…

设计模式学习笔记 - 设计模式与范式 -行为型:17.中介模式:什么时候用中介模式?什么时候用观察者模式?

概述 本章学习 23 种经典设计模式中的最后一个设计模式,中介模式。和之前讲过的命令模式、解释器模式类似,中介模式也不怎么常用,应用场景比较特殊、有限,但是,跟它俩不同的是,中介模式理解起来并不难&…

《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)

1.简介 自动化测试中如何输出日志文件。任何软件,都会涉及到日志输出。所以,在测试人员报bug,特别是崩溃的bug,一般都要提供软件产品的日志文件。开发通过看日志文件,知道这个崩溃产生的原因,至少知道触发崩…

图文教程 | 2024Typora最新版免费激活使用教程(新旧版可用)

一、打开官网下载最新版Typora Typora 官网下载 安装: Typora中文官网:https://typoraio.cn/ Typora官网:https://typora.io/releases/all 官网长这个样子 下面这个不是官网!!!!注意&#x…

《一》Qt的概述

1.1 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。 1.2 Qt的发展史 1991年 Qt最早由芬兰奇趣科技开发 1996年 进入商业领域&#x…

【Django开发】0到1美多商城项目md教程第7篇:登录,1. 互联开发者申请步骤【附代码文档】

美多商城完整教程(附代码资料)主要内容讲述:欢迎来到美多商城!,项目准备。展示用户注册页面,创建用户模块子应用。用户注册业务实现,用户注册前端逻辑。图形验证码,图形验证码接口设…

结合 react-webcam、three.js 与 electron 实现桌面人脸动捕应用

系列文章目录 React 使用 three.js 加载 gltf 3D模型 | three.js 入门React three.js 3D模型骨骼绑定React three.js 3D模型面部表情控制React three.js 实现人脸动捕与3D模型表情同步结合 react-webcam、three.js 与 electron 实现桌面人脸动捕应用 示例项目(github)&…

Jackson 2.x 系列【19】模块 Module

有道无术,术尚可求,有术无道,止于术。 本系列Jackson 版本 2.17.0 源码地址:https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 前言2. 核心类2.1 Module2.2 SimpleModule 3. 案例演示3.1 自定义模块3.2 注册…

ES查询和监控

es安装 参考https://blog.csdn.net/okiwilldoit/article/details/137107087 再安装kibana,在它的控制台里写es查询语句。 es指南 es权威指南-中文版: kibana用户手册-中文版: es中文社区 es参考手册API es客户端API es查询语句 # 查询e…

杰发科技AC7840——CAN通信简介(3)_时间戳

0. 时间戳简介 时间戳表示的是收到该CAN消息的时刻,通过连续多帧的时间戳,可以计算出CAN消息的发送周期,也可以用于判断CAN消息是否被持续收到。 1. 使用步骤 注意分别是发送和接收的功能: 2. 现象分析_接收时间戳 看下寄存器的…

鸿蒙端云一体化开发--开发云函数--适合小白体制

开发云函数 那什么是云函数?我们将来又怎么去使用这个云函数呢? 答:我们之前要编写一些服务端的业务逻辑代码,那现在,在这种端云一体化的开发模式下,我们是把服务端的业务逻辑代码,通过云函数来…

HackTheBox-Machines--MonitorsTwo

文章目录 0x01 信息收集0x02 CVE-2022-46169 漏洞利用0x03 权限提升0x04 提升到root权限 MonitorsTwo 测试过程 0x01 信息收集 a.端口扫描: 发现22、80端口    b.信息收集: 1.2.22 Cacti信息收集 nmap -sC -sV 10.129.186.1321.访问 10.129.186.132,为 1.2.22 Ca…

Java 面试宝典:你知道多少种解决 hash 冲突的方法?

大家好,我是大明哥,一个专注「死磕 Java」系列创作的硬核程序员。 本文已收录到我的技术网站:https://www.skjava.com。有全网最优质的系列文章、Java 全栈技术文档以及大厂完整面经 回答 在使用 hash 表时, hash 冲突是一个非常…

01-Three.js

引入three.js 1.script标签引入 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Three.js中文网&#xff1a;http://www.webgl3d.cn/</title><!-- 引入three.js --><script src"…

恢复MySQL!是我的条件反射,PXB开源的力量...

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

【Linux】账号和权限管理

目录 一、用户账号与组账号 二、添加用户账号-useradd 三、修改用户账号的属性-usermod 四、更改用户命令-passwd 五、删除用户账号-userdel 六、添加组账号-groupadd 七、添加删除组成员-gpasswd 八、删除组账号-groupdel 九、查询账号信息-groups、id、finger、w、w…

Opentelemetry——Signals-Baggage

Baggage Contextual information that is passed between signals 信号之间传递的上下文信息 In OpenTelemetry, Baggage is contextual information that’s passed between spans. It’s a key-value store that resides alongside span context in a trace, making values…

开源博客项目Blog .NET Core源码学习(15:App.Hosting项目结构分析-3)

本文学习并分析App.Hosting项目中前台页面的关于本站页面和点点滴滴页面。 关于本站页面 关于本站页面相对而言布局简单&#xff0c;与后台控制器类的交互也不算复杂。整个页面主要使用了layui中的面包屑导航、选项卡、模版、流加载等样式或模块。   面包屑导航。使用layui…

RuntimeError: Error(s) in loading state_dict for ZoeDepth解决方案

本文收录于《AI绘画从入门到精通》专栏,订阅后可阅读专栏内所有文章,专栏总目录:点这里。 大家好,我是水滴~~ 本文主要介绍在 Stable Diffusion WebUI 中使用 ControlNet 的 depth_zoe 预处理器时,出现的 RuntimeError: Error(s) in loading state_dict for ZoeDepth 异常…