嵌入式开发环境与软件编程基础
请修改系统参数,选择国内镜像软件源仓库,以提高软件安装速度(注意Ubuntu不同版本的对应不同名称,如Ubuntu22.04是jammy,Ubuntu20.04是focal,Ubuntu18.04是bionic,Ubuntu16.04是xenial)。3. 请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(i
实验目的:
1. 在windows环境下通过虚拟机软件(比如Vmware、VirtualBox)安装Ubuntu 18.04或更高桌面图形版系统,熟练掌握Ubuntu常用命令,并学习使用vi/vim、或nano、或gedit文本编辑软件; Ubuntu系统一般采用 apt-get 命令进行某个软件的在线查找和安装,默认官方的软件源仓库位于国外,下载速度较慢。请修改系统参数,选择国内镜像软件源仓库,以提高软件安装速度(注意Ubuntu不同版本的对应不同名称,如Ubuntu22.04是jammy,Ubuntu20.04是focal,Ubuntu18.04是bionic,Ubuntu16.04是xenial)。
2. 在Ubuntu系统下用C语言编写一个简单的输出 hello word 的程序,并编译有、运行之;
3. 请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。
1) 请在ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行;
2) 请在windows系统下用你熟悉的编译工具编译主程序main1.c 并运行。
4. 在任务3基础上,在ubuntu系统下用Makefile方式编程主程序。
实验过程:
1.

2.

3.

源程序
-
sub1.c
/* sub1.c:对 a、b 做浮点除法 a/(float)b */
float x2x(int a, int b)
{
return a / (float)b;
}
-
sub1.h(函数声明,main1.c 需包含)
#ifndef SUB1_H
#define SUB1_H
float x2x(int a, int b);
#endif
-
main1.c
#include <stdio.h>
#include "sub1.h"
int main(void)
{
int x = 7, y = 3;
printf("x2x(%d,%d) = %.3f\n", x, y, x2x(x, y));
return 0;
}
二、Ubuntu 命令行步骤
-
把三个文件放进同一目录,例如
~/lab/ -
编译 & 运行
cd ~/lab/
gcc main1.c sub1.c -o main1 # 生成可执行文件 main1
./main1 # 运行
预期输出:
x2x(7,3) = 2.333
三、Windows 命令行步骤(VS2022 开发者命令行)
-
安装 VS2022 → 开始菜单 → x64 Native Tools Command Prompt for VS 2022
-
进入源码目录(假设放在
D:\lab)
D:
cd \lab
-
编译 & 运行
cl main1.c sub1.c /Fe:main1.exe # 生成 main1.exe
main1.exe # 运行
输出与 Ubuntu 完全一致:
x2x(7,3) = 2.333
实验心得
本次实验在 Windows 平台下通过 VMware 虚拟化技术部署 Ubuntu 20.04 LTS 桌面环境,完成了源列表优化、基础开发工具链配置、C 语言多文件程序编译及 Makefile 构建等任务。实践过程中,我深刻体会到两点:其一,软件源镜像的合理选择直接影响后续开发效率,国内镜像可将包下载速度提升两个数量级;其二,从手动 gcc 命令到 Makefile 自动化构建,体现了“将重复操作固化成规则”的软件工程思想,任何隐蔽的格式错误(如命令行前空格替代 Tab)都会导致构建失败,必须严格遵守语法规范。整体而言,实验夯实了 Linux 下的基础开发技能,为后续课程设计奠定了可靠的运行与调试环境。
更多推荐

所有评论(0)