一、VMware虚拟机插入Ubuntu20.04系统
1. 下载Ubuntu镜像文件
首先进入下面的网址,下载Ubuntu20.04桌面版
https://releases.ubuntu.com/
进入到网址之后向下翻页面可以找到Ubuntu20.04资源进行下载即可(注意:一定要下载桌面版)
下面是下载完后的光盘映像文件:
2. 创建虚拟机
首先打开虚拟机软件,进入首页,点击创建新的虚拟机
随后弹出第一个界面,选择自定义(高级)选项后进行下一步
出现这个界面后,不用管,继续下一步
由于我之前已经在虚拟机安装了Ubuntu,所以他会自动识别到我的Ubuntu映像文件,我们进行安装的时候选择第三个选项,稍后安装操作系统,随后点击下一步
进入下一个界面,选择“lunix(L)”,下方根据电脑的版本选择,我的电脑是64位的,所以我选的是“ubuntu64位”,随后点击“下一步”
进入下一个界面,用户名根据自己喜好定义,我用的是默认的用户名定义,安装位置默认是C盘,这里建议更改一下默认位置到D盘等其他磁盘,C盘存储量太多会导致电脑后面特别卡。
下个界面进行处理器的配置,我推荐是两个处理器,每个处理器两个内核。(可以根据喜好自行决定)
下个界面是对虚拟机内存进行分配,这个如果你的电脑内存足够多的话,可以采用最大推荐内存,如果不是很充裕的话,可以采用推荐内存
下个页面网络连接地址一定要选择NAT!!!!!!一定要选择NAT!!!!!!NAT!!!!!!否则你的虚拟机建立好之后会没有网络
后面的几个界面按照他的推荐一步一步进行就行,在此我也不多说了,一直到这个界面,磁盘大小根据你的电脑的内存决定,但是最小还是不要低于20G
随后一直按照他的指示点击下一步即可完成虚拟机的创建
3.将Ubuntu映像文件导入虚拟机中
创建完虚拟机后会显示以下界面,点击图中标注的地方
进入如下界面后,点击图中标注的地方,随后点击浏览,找到最开始我们下载的Ubuntu映像文件
在此之后我们的ubuntu就导入完成了,随后我们就要启动虚拟机了
4.对系统进行初步的配置
打开虚拟机后,首先会弹出这个界面,我们按照图中的指示进行选择
由于Ubuntu20.04版本进入的时候界面非常的小,所以我们要用“win”+“w”随后长按鼠标左键拖动页面,直到看到下面的继续两个字。下个界面是选择键盘布局,我们两个都选择Chinese即可,然后下一步 。
进入下一个界面的时候,一定要把“安装时下载更新”这个打勾的地方取消掉
后面按照指示继续即可,时区选择上海,设置好自己的账号密码,我们的Ubuntu系统初步的配置就完成了,完成后需要重启一下,就可以用了
二、在Ubuntu系统中下载并配置VScode
1. 更换国内镜像软件源仓库
点击这个图标,进入到菜单中
选择“软件和更新”
进入后将下载自改为国内的镜像站就行,比如有:阿里云,华为云,清华源等,我选的是阿里云,大家可以自行决定选择哪个。
2. 下载VScode
随后用火狐浏览器,进入百度搜索“VScode”进入官网进行下载,选择deb版本下载。
选择这个版本进行下载
下载完后找到文件所在位置,打开终端,输入
sudo dpkg -i code_1.95.1-1730354713_arm64.deb
其中‘’-i”后面是你们下载的文件包的名字,然后“回车”,软件就开始安装了,安装好之后点击菜单键,向下翻找就能找到了
3. 配置VScode的c++环境
首先我们先在主目录里面新建一个文件夹,然后点击鼠标右键,选择图中标注的地方
选择用VScode打开这个文件夹
编译C++代码时我们需要使用编译器在此我选择的是g++编译器,因此我们需要下载g++
打开终端,输入代码
sudo apt-get update
sudo apt-get install g++
随后还要安装c++调试器
输入代码:
sudo apt-get install gdb
随后进入VScode,点击图中所示的扩展图标
在上面搜索栏里面搜索c++,将图中标注的扩展包进行下载(如果需要将英文转化成汉语的话,可以在这里面搜索Chinese,下载汉化包)
在VS code中,我们需要配置编译器路径以便进行C++编译。可以在VS Code中打开"Settings”面板,搜索”C++”并找到”C++:
Compiler Path"选项。将该选项设置为自己的编译器路径。(或者在这个页面按住“ctrl+shift+p”,然后选择图中的选项)
由于我们刚刚安装的是g++,因此我们要将图中标注的地方改成g++
4. 编写 hello world
准备完毕后,我们点击图中所示的标志新建一个文件,命名为“main.cpp”
随后再里面编写以下代码:
#include<iostream>
using namespace std;
int main(){
cout<<"hello world"<<endl;
}
随后点击右上角编译符号进行编译,结果如下:
由此可得,成功在Ubuntu下载VScode并成功配置好c++环境。
5. 建立一个C语言环境并编译hello world
代码:
#include <stdio.h>
int main() {
printf("hello world\n");
return 0;
}
三、双系统C语言练习
1. Ubuntu20.04系统C语言练习
练习题目:请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。
请在ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行;
main1.c代码:
#include <stdio.h>
float x2x(int a, int b);
int main() {
int num1 = 5;
int num2 = 8;
float result = x2x(num1, num2);
printf("The result is: %f\n", result);
return 0;
}
sub1.c代码
float x2x(int a, int b) {
return (float)(a * b) / (a + b);
}
随后打开终端,进入保存这两个文件的目录。
使用以下命令编译:
gcc main1.c sub1.c -o my_program
./my_program
编译结果如下:
2. 在Ubuntu系统用makefile编译main1.c
在与main1.c
和sub1.c
相同的目录下创建一个名为Makefile
的文件,内容如下:
CC = gcc
CFLAGS = -Wall -Wextra
all: main1
main1: main1.o sub1.o
$(CC) -o $@ $^
main1.o: main1.c
$(CC) $(CFLAGS) -c $< -o $@
sub1.o: sub1.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f main1 main1.o sub1.o
注意:
红线标的地方不可以用空格打出来,要用键盘上的“tab”打出来。
打开终端,进入包含这些文件的目录。
执行make
命令进行编译。这将根据 Makefile 中的规则编译你的程序,并生成可执行文件main1
。
代码:
make
./main
3. 在Windows系统编译这个代码
(目前我电脑上安装的C语言编译器是visual studio,所以本篇文章使用visual studio编译虚拟机已经通过的代码)
编译结果
代码:
#include <stdio.h>
float x2x(int a, int b) {
return (float)(a * b) / (a + b);
}
float x2x(int a, int b);
int main() {
int num1 = 5;
int num2 = 8;
float result = x2x(num1, num2);
printf("The result is: %f\n", result);
return 0;
}
四、心得总结
在这次实验中,我深入探索了 Ubuntu 系统的安装、配置以及 C 语言编程,收获颇丰。
首先,在 Windows 环境下通过虚拟机软件安装 Ubuntu 系统的过程让我对虚拟化技术有了更直观的认识。虚拟机为我们提供了一个安全且便捷的实验环境,使得我们可以在不影响主机系统的情况下尝试不同的操作系统和软件。安装过程虽然需要一些耐心和细心,但按照步骤进行操作并不复杂,这也让我感受到了科技带来的便利,能够在不同的操作系统之间轻松切换,满足不同的学习和工作需求。
对于 Ubuntu 系统常用命令的学习和掌握是本次实验的重要环节之一。熟悉这些命令不仅提高了我的工作效率,还让我对操作系统的底层运作有了更深入的理解。通过使用 gedit 文本编辑软件,我体验到了不同工具的特点和优势,能够根据实际情况选择最适合的编辑方式。
在软件源仓库的设置方面,我了解到了 Ubuntu 默认官方软件源位于国外会导致下载速度较慢的问题。通过修改系统参数,选择国内镜像软件源仓库,我成功提高了软件安装速度。这个过程让我认识到了开源社区的强大和灵活性,我们可以根据自己的需求进行定制和优化,以获得更好的使用体验。
用 C 语言在 Ubuntu 系统下编写 “Hello World” 程序是一个很好的入门练习。它让我熟悉了 Ubuntu 下的编程环境,包括编译器的使用和代码的编译运行流程。从简单的输出语句开始,逐步深入到更复杂的程序编写,让我感受到了编程的乐趣和挑战。
在编写主程序文件 main1.c 和子程序文件 sub1.c 的过程中,我深入理解了 C 语言的函数调用和参数传递机制。通过定义和调用算术运算函数 x2x,我学会了如何将复杂的任务分解为小的模块,提高代码的可读性和可维护性。在 Ubuntu 系统下用 gcc 命令行方式编译主程序并运行,让我体验到了命令行工具的强大和高效。同时,在 Windows 系统下使用熟悉的编译工具进行编译和运行,也让我看到了不同平台之间的差异和共性。
最后,使用 Makefile 方式编程主程序是本次实验的一个亮点。Makefile 提供了一种自动化的编译方式,大大提高了编程效率。通过编写 Makefile 文件,我学会了如何定义编译规则和依赖关系,使得编译过程更加简洁和高效。
总的来说,这次实验让我在 Ubuntu 系统的使用和 C 语言编程方面取得了很大的进步。我不仅掌握了实际的操作技能,还培养了自己的问题解决能力和学习能力。在未来的学习和工作中,我将继续深入探索 Ubuntu 系统和 C 语言编程,不断提高自己的技术水平。同时,我也希望能够将这些知识和技能应用到实际项目中,为解决实际问题做出贡献。