安装Ubuntu系统并搭建C语言环境(超详细教程)

2023-09-20 16:34:44

一、新建虚拟机

1、打开VMware Workstation,点击 "创建新的虚拟机" 。(或者选择左上角的 "文件 -> 新建虚拟机")

2、进入向导窗口,选择 "自定义" 选项,进入下一步。

3选择 硬件兼容性,这里选择默认的 "Workstation 16.x" 就行,进入下一步。

4选择 "稍后安装操作系统" ,进入下一步 。

5、客户机的操作系统选择 "Linux" ,版本选择 "Ubuntu 64 位" 

6、设置虚拟机名称和安装位置

7. 设置处理器参数,每个处理器内核数设置为 2 。

处理器和内核是计算机硬件中的两个重要概念。处理器是整个计算机系统中的核心部件,负责执行指令和处理数据。而内核则是处理器中的一个子部件,它是按照指令集设计规范实现的硬件单元。

内核可以被视为指令集的实物化,它负责执行指令集中的指令。不同的处理器硬件可能会采用不同版本的内核,这是因为硬件设计方案可能有所不同,即使是同一个版本的指令集也可能存在不同版本的内核。

在现代处理器中,常常使用超线程技术来增加逻辑处理器的数量。超线程技术允许处理器中的空闲部分实现虚拟的逻辑处理器,从而使得逻辑处理器的数量比内核的数量多。所以在一般情况下,我们提到处理器的核心数时,指的是逻辑处理器的数量。

8、设置内存大小。(推荐4GB

9、网络类型选择 "使用网络地址转换NAT" 。 

虚拟机的网络类型中的桥接模式,仅主机模式和NAT模式有以下区别:

桥接模式(Bridged Mode):虚拟机的网络接口与宿主机的物理网络接口直接桥接连接,虚拟机可以获得宿主机所在网络中的一个独立的IP地址。这样虚拟机就可以像宿主机一样在网络中进行通信,与局域网内的其他设备直接进行通信。桥接模式使得虚拟机可以作为网络中的一个独立设备使用,能够直接与网络中的其他设备进行通信。

仅主机模式(Host-only Mode):虚拟机与宿主机之间建立一个私有网络,虚拟机可以通过该私有网络与宿主机进行通信,但无法与外部网络进行通信。在仅主机模式下,虚拟机没有独立的IP地址,只能通过宿主机提供的IP地址进行通信。这种模式适用于虚拟机与宿主机之间的内部通信或者进行测试和开发。

NAT模式(Network Address Translation Mode):虚拟机通过NAT网关与宿主机进行通信,NAT网关将虚拟机的网络包转发给外部网络,并为虚拟机分配一个私有IP地址。在NAT模式下,虚拟机无法直接与外部网络中的其他设备通信,但可以通过NAT网关进行间接通信。NAT模式适用于需要访问外部网络但又不需要为虚拟机分配独立IP地址的场景。

10、SCSI 控制器类型选择推荐的 "LSI Logic" 

11、虚拟磁盘类型选择推荐的 "SCSI" 

12、选择 "创建新虚拟磁盘" 

13、设置磁盘容量,并选择 "将虚拟磁盘拆分成多个文件" 

14、磁盘文件命名。

15、 到这里虚拟机已经创建完成!可以直接点击 "完成" 。

二、安装操作系统

1、回到 VMware 界面,可以看到 "我的计算机" 下多了一个Ubuntu(就是我们刚才创建的虚拟机),点击 "编辑虚拟机设置" 

2、选择 "CD/DVD" ,在设备状态中 勾选 "启动时连接" ,在连接中选择 "使用ISO映像文件" ,点击 "浏览" 选择准备好的操作系统的镜像文件,点击 "确定" 

3、选择虚拟机,点击 "开启此虚拟机" 

4、进入Ubuntu的安装界面,选择语言,点击 "安装Ubuntu" 

5、以下选项均为默认即可

6、选择位置

7、创建用户

8、重启虚拟机就可以了

三、搭建C语言环境

1、安装vim(编辑器)

apt-get install vim(注:如果没有在超级用户的操作下需要提权)

2、安装gcc(编译器)

apt-get install gcc

3、安装build-essential

apt-get install build-essential

4、创建一个hello.c文件,并且编辑第一个程序:

#include<stdio.h>



int main(void)

{

        printf("hello word! \n");

        return 0;

}   

5、执行命令gcc -Wall hello.c -o hello

6、执行程序:

更多推荐

使用GGML和LangChain在CPU上运行量化的llama2

MetaAI在本周二发布了最新一代开源大模型Llama2。对比于今年2月发布的Llama1,训练所用的token翻了一倍,已经达到了2万亿,对于使用大模型最重要的上下文长度限制,Llama2也翻了一倍。在本文,我们将紧跟趋势介绍如何在本地CPU推理上运行量化版本的开源Llama2。量化快速入门我们首先简单介绍一下量化的

决策树的划分依据之:信息增益率

在上面的介绍中,我们有意忽略了"编号"这一列.若把"编号"也作为一个候选划分属性,则根据信息增益公式可计算出它的信息增益为0.9182,远大于其他候选划分属性。计算每个属性的信息熵过程中,我们发现,该属性的值为0,也就是其信息增益为0.9182.但是很明显这么分类,最后出现的结果不具有泛化效果.无法对新样本进行有效预测

网络安全(黑客)自学

前言1.不要试图以编程为基础的学习开始学习我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是目的,我们的目标不是成为程序员。建

重新理解 RocketMQ Commit Log 存储协议

最近突然感觉:很多软件、硬件在设计上是有rootreason的,不是bydesgin如此,而是解决了那时、那个场景的那个需求。一旦了解后,就会感觉在和设计者对话,了解他们的思路,学习他们的方法,思维同屏:活到老学到老。问题思考1、ConsumerQueueOffset是连续的吗,为什么?2、CommitLogOffse

Rust 数据类型 之 结构体(Struct)

目录结构体(Struct)定义与声明结构体定义结构体实例结构体分类单元结构体(UnitStruct)元组结构体(TupleStruct)具名结构体(NamedStruct)结构体嵌套结构体方法例1:结构体转换为字符串描述例2:矩形的周长和面积例3:结构体字段的更新与输出关联函数结构体方法与关联函数的区别参数传递方式的区

爬虫工作者必备:使用爬虫IP轻松获得最强辅助

目录一、爬虫IP的作用与优势二、选择合适的爬虫IP服务商三、使用爬虫IP的注意事项和技巧代码示例四、合法合规使用爬虫IP总结随着互联网的发展,数据已经成为企业竞争的核心资源。而获取这些数据的有效方式,就是通过爬虫技术。但是,爬虫在运行过程中很可能会触及到目标网站的限制,从而被禁止访问甚至封号。为了解决这个问题,我们可以

“熊猫杯” | 赛宁网安获网络安全优秀创新成果大赛优胜奖

9月11日,四川省2023年国家网络安全宣传周正式启动。由四川省委网信办指导,中国网络安全产业联盟(CCIA)主办,成都信息工程大学、四川省网络空间安全协会承办的“2023年网络安全优秀创新成果大赛—成都分站赛(暨四川省‘熊猫杯’网络安全优秀作品大赛)”落下帷幕。赛宁网安凭借主动防御安全网格解决方案脱颖而出,荣获大赛优

Hadoop源码阅读(一):NameNode启动

说明:1.Hadoop版本:3.1.32.阅读工具:IDEA2023.1.23.源码获取:Indexof/dist/hadoop/core/hadoop-3.1.3(apache.org)4.工程导入:下载源码之后得到hadoop-3.1.3-src.tar.gz压缩包,在当前目录打开PowerShell,使用tar-

C++中按引用传递参数

C++中按引用传递参数实参通常是通过值传递给函数的,这意味着形参接收的只是发送给它们的值的副本,它们存储在函数的本地内存中。对形参值进行的任何更改都不会影响原始实参的值。然而,有时候可能会希望一个函数能够改变正在调用中的函数(即调用它的函数)中的一个值,这可以通过引用传递的方式来完成。我们知道,变量是可以保存数据的内存

Linux 内存泄漏检测的基本原理

一、mtrace分析内存泄露mtrace(memorytrace),是GNUGlibc自带的内存问题检测工具,它可以用来协助定位内存泄露问题。它的实现源码在glibc源码的malloc目录下,其基本设计原理为设计一个函数voidmtrace(),函数对libc库中的malloc/free等函数的调用进行追踪,由此来检测

【送面试题】Linux中grep和find的区别及全面使用指南

AI绘画关于SD,MJ,GPT,SDXL百科全书面试题分享点我直达2023Python面试题2023最新面试合集链接2023大厂面试题PDF面试题PDF版本java、python面试题项目实战:AI文本OCR识别最佳实践AIGamma一键生成PPT工具直达链接玩转cloudStudio在线编码神器玩转GPUAI绘画、A

热文推荐