作业1:嵌入式开发环境与软件编程基础TOC
一. 安装 Ubuntu 系统
在这里插入图片描述
二.在Ubuntu系统下用C语言编写一个简单的输出 hello word 的程序,并编译有、运行之。
1.首先确保系统已安装C编译器,若未安装可执行以下命令

sudo apt update
sudo spt install gcc

2.创建C语言源文件,例如使用nano编辑器:

nano hello.c

3.在编辑器中输入以下代码

#include <stdio.h>  // 引入标准输入输出库

int main() {
    // 输出"hello world"并换行
    printf("hello world\n");
    return 0;  // 程序正常结束
}

按Ctol+O保存
4.使用gcc编辑器编译源文件:

gcc hello.c -o hello

5.在终端中执行编译生成的 hello 程序:

./hello

6.运行结果
在这里插入图片描述
三. 请编写一个主程序文件 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 并运行。

  1. 程序设计
    sub1.c(子程序,实现算术运算函数):
// 功能:计算两数的平均值(示例运算)
float x2x(int a, int b) {
    return (a + b) / 2.0f;
}

main1.c(主程序,调用子程序)

#include <stdio.h>
// 声明外部函数
extern float x2x(int a, int b);

int main() {
    int num1 = 3, num2 = 5;
    float result = x2x(num1, num2);
    printf("Result: %.2f\n", result);
    return 0;
}
  1. Ubuntu 下 gcc 编译运行
    编译命令(链接两个源文件):
gcc main1.c sub1.c -o main1

运行结果:
在这里插入图片描述
2.Windows 下编译运行
使用 MinGW 编译器:
1)将main1.c和sub1.c保存到D:\test目录;
2)打开命令提示符,切换到该目录:

d:
cd test

3)编译并运行:

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

输出结果与 Ubuntu 一致:Result: 6.00

四. 在任务3基础上,在ubuntu系统下用Makefile方式编程主程序。
1、准备文件
确保已存在任务 3 中的两个源文件:
main1.c(主程序)
sub1.c(子程序,含x2x函数)
2、编写 Makefile
在与源文件相同的目录下,创建一个名为Makefile(注意首字母大写,无扩展名)的文件,内容如下:

# 定义目标可执行文件名
TARGET = main1

# 定义源文件列表
SRCS = main1.c sub1.c

# 定义编译器和编译选项
CC = gcc
CFLAGS = -Wall  # 显示警告信息,便于调试

# 默认目标(第一个目标为默认,执行make时会自动执行)
all: $(TARGET)

# 编译生成可执行文件
$(TARGET): $(SRCS)
	$(CC) $(CFLAGS) $(SRCS) -o $(TARGET)

# 清理编译生成的文件(执行make clean时调用)
clean:
	rm -f $(TARGET)

说明:
TARGET:指定最终生成的可执行文件名(此处为main1)。
SRCS:列出所有需要编译的源文件(main1.c和sub1.c)。
CC:指定编译器(此处为gcc)。
CFLAGS:编译选项(-Wall启用所有警告,帮助发现代码问题)。
all:默认目标,执行make时会自动编译生成TARGET。
clean:清理目标,执行make clean时会删除生成的可执行文件。

3、使用 Makefile 编译运行
1)打开终端,进入源文件和Makefile所在目录。
2)编译程序:
直接执行make命令(无需指定目标,默认执行all):

make

3)运行程序:
编译完成后,执行生成的可执行文件:

./main1

4)运行结果
在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐