1. 实验目的

  1. 掌握在 Windows 环境下通过虚拟机软件(VMware、VirtualBox 等)安装 Ubuntu 18.04 或更高版本桌面图形版系统的方法。
  2. 熟练掌握 Ubuntu 常用命令,并学会使用 vi/vim、nano 或 gedit 等文本编辑软件。
  3. 学会修改 Ubuntu 软件源为国内镜像源,提高软件安装速度。
  4. 掌握在 Ubuntu 系统下使用 gcc 编译 C 语言程序的方法。
  5. 掌握多文件 C 语言程序的编写、编译与运行方法。
  6. 掌握在 Windows 系统下使用编译工具编译 C 语言程序的方法。
  7. 掌握使用 Makefile 进行程序自动化编译的方法。
  8. 学会将实验过程与结果整理为 Markdown 格式的实验报告,并发布到博客平台。

2. 实验环境

项目说明
宿主机操作系统Windows 10/11
虚拟机软件VMware Workstation 或 VirtualBox
虚拟机操作系统Ubuntu 18.04.6 LTS(桌面版)
编译器gcc(Ubuntu 自带)、MinGW-w64(Windows 下使用)
文本编辑器vim、nano、gedit
构建工具make

3. 实验内容与步骤

3.1 在 Windows 下安装 Ubuntu 虚拟机

3.1.1 下载 Ubuntu 镜像

访问 Ubuntu 官方网站(https://ubuntu.com/download/desktop),下载 Ubuntu 18.04.6 LTS 桌面版 ISO 镜像文件。Ubuntu 18.04 的代号为 bionic,其软件源配置中会用到该代号。
在这里插入图片描述

3.1.2 创建虚拟机

以 VMware Workstation 为例,创建虚拟机的步骤如下:

  1. 打开 VMware Workstation,点击「创建新的虚拟机」。
  2. 选择「典型(推荐)」配置类型,点击「下一步」。
  3. 选择「安装程序光盘映像文件(iso)」,浏览并选择下载好的 Ubuntu 18.04 ISO 镜像。
  4. 设置虚拟机名称和安装位置,建议分配至少 20GB 磁盘空间和 2GB 以上内存。
  5. 点击「完成」,虚拟机将自动启动并进入 Ubuntu 安装界面。
  6. 按照安装向导完成系统安装,设置用户名和密码。
    !](https://i-blog.csdnimg.cn/direct/3b8f0497539743fea1c4a4e1e2b1c6d3.png#pic_center)
3.1.3 安装 VMware Tools(可选)在这里插入图片描述

在这里插入图片描述

安装 VMware Tools 可以增强虚拟机的显示效果和文件共享功能。在虚拟机菜单栏选择「虚拟机」→「安装 VMware Tools」,然后在 Ubuntu 终端中执行以下命令:

sudo mount /dev/cdrom /mnt
cd /mnt
tar -zxvf VMwareTools-*.tar.gz -C /tmp
cd /tmp/vmware-tools-distrib
sudo ./vmware-install.pl

在这里插入图片描述

3.2 Ubuntu 常用命令学习

在 Ubuntu 终端中,常用的命令如下:

命令功能说明
ls列出当前目录下的文件和文件夹
cd切换目录
pwd显示当前所在目录的完整路径
mkdir创建新目录
rm删除文件或目录
cp复制文件或目录
mv移动或重命名文件
cat查看文件内容
sudo以管理员权限执行命令
apt-get软件包管理工具,用于安装、更新、卸载软件
ifconfig查看网络配置信息
ps查看当前运行的进程
chmod修改文件权限

3.3 文本编辑软件的使用

Ubuntu 系统自带多种文本编辑软件,本实验使用 vim 和 gedit。

3.3.1 vim 的基本使用

vim 有三种工作模式:命令模式、插入模式和底行模式。

vim hello.c        # 打开或创建文件
  • i 进入插入模式,开始编辑文本。
  • Esc 返回命令模式。
  • 在命令模式下输入 :wq 保存并退出。
  • 输入 :q! 不保存强制退出。
3.3.2 gedit 的基本使用

gedit 是 Ubuntu 自带的图形化文本编辑器,操作方式与 Windows 下的记事本类似:

gedit hello.c

3.4 更换国内软件源

Ubuntu 默认的官方软件源位于国外,下载速度较慢。为提高软件安装速度,需要将软件源更换为国内镜像源。不同 Ubuntu 版本的软件源代号不同,Ubuntu 18.04 对应 bionic,Ubuntu 20.04 对应 focal,Ubuntu 22.04 对应 jammy。

3.4.1 备份原始软件源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
3.4.2 编辑软件源文件
sudo vim /etc/apt/sources.list

将文件内容替换为以下阿里云镜像源(以 Ubuntu 18.04 bionic 为例):

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

注意:如果安装的是 Ubuntu 20.04,将上述内容中的 bionic 全部替换为 focal;如果是 Ubuntu 22.04,则替换为 jammy。

3.4.3 更新软件源
sudo apt-get update

更新完成后,即可使用 apt-get install 快速安装软件。
在这里插入图片描述

3.5 编写并运行 Hello World 程序

3.5.1 编写源代码

使用 vim 创建 hello.c 文件:

vim hello.c

输入以下代码:

#include <stdio.h>

int main()
{
    printf("hello world\n");
    return 0;
}
3.5.2 编译并运行
gcc hello.c -o hello
./hello

运行结果:

hello world

3.6 多文件 C 语言程序编写与编译

3.6.1 编写子程序 sub1.c

使用 vim 创建 sub1.c 文件:

vim sub1.c

输入以下代码:

float x2x(int a, int b)
{
    return (float)(a + b);
}

该函数对两个输入整型参数做加法运算,并将结果转换为浮点数返回。

3.6.2 编写主程序 main1.c

使用 vim 创建 main1.c 文件:

vim main1.c

输入以下代码:

#include <stdio.h>

float x2x(int a, int b);

int main()
{
    int a = 10;
    int b = 20;
    float result;

    result = x2x(a, b);
    printf("x2x(%d, %d) = %.2f\n", a, b, result);

    return 0;
}
3.6.3 在 Ubuntu 下用 gcc 命令行编译运行
gcc main1.c sub1.c -o main1
./main1

运行结果:

x2x(10, 20) = 30.00
3.6.4 在 Windows 下用编译工具编译运行

在 Windows 系统下,可以使用 MinGW-w64 提供的 gcc 编译器。安装 MinGW-w64 并配置环境变量后,在命令提示符(cmd)中执行:

gcc main1.c sub1.c -o main1.exe
main1.exe

运行结果与 Ubuntu 下一致:

x2x(10, 20) = 30.00

3.7 使用 Makefile 编译主程序

在任务 3 的基础上,使用 Makefile 实现自动化编译。

3.7.1 编写 Makefile

使用 vim 创建 Makefile 文件:

vim Makefile

输入以下内容:

CC = gcc
TARGET = main1
OBJS = main1.o sub1.o

$(TARGET): $(OBJS)
	$(CC) $(OBJS) -o $(TARGET)

main1.o: main1.c
	$(CC) -c main1.c -o main1.o

sub1.o: sub1.c
	$(CC) -c sub1.c -o sub1.o

clean:
	rm -f $(OBJS) $(TARGET)

注意:Makefile 中每个规则的命令行必须以 Tab 键开头,不能使用空格。

3.7.2 使用 make 编译运行
make
./main1

运行结果:

x2x(10, 20) = 30.00
3.7.3 清理编译产物
make clean

4. 实验结果

  1. Ubuntu 18.04 虚拟机安装成功,系统运行正常。
  2. 软件源更换为阿里云国内镜像后,apt-get update 和软件安装速度显著提升。
  3. Hello World 程序在 Ubuntu 下编译运行成功,输出 hello world
  4. 多文件程序 main1.c 和 sub1.c 在 Ubuntu 和 Windows 下均编译运行成功,输出 x2x(10, 20) = 30.00
  5. 使用 Makefile 自动化编译成功,运行结果与命令行编译一致。
    在这里插入图片描述

5. 实验总结

本次实验完成了 Ubuntu 虚拟机的安装与配置,掌握了 Ubuntu 常用命令和文本编辑软件的使用方法。通过修改软件源为国内镜像,有效解决了软件下载速度慢的问题。在 Ubuntu 和 Windows 两个平台下分别使用 gcc 编译了多文件 C 语言程序,并掌握了 Makefile 自动化构建工具的使用。整个实验过程加深了对 Linux 操作系统和 C 语言编译流程的理解。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐