嵌入式环境下C编程初探

嵌入式环境下C编程初探

一、实验目的

  1. 掌握 Ubuntu 系统下 C 语言多文件联合编译方法。
  2. 掌握 Linux 下 Makefile 工程编译原理与编写规范。
  3. 掌握 Windows Dev-C++ 多文件项目创建与跨平台代码运行。
  4. 理解主程序文件与子程序文件的代码分离、函数调用机制。

二、实验环境

  • 虚拟机系统:Ubuntu 18.04 / 20.04
  • 编译工具:gcc
  • 编辑器:VSCode、gedit
  • Windows 编译环境:Dev-C++ 5.8.3

三、实验内容与过程


任务一:Linux 多文件编程 + 命令行编译运行

1. 实验原理

将程序拆分为两个独立 .c 文件:

  • main1.c:主程序,定义变量、调用外部函数
  • sub1.c:子程序,实现自定义运算函数 x2x()

多文件编译需要同时编译两个文件,否则会出现未定义函数报错。

2. 代码编写

main1.c

#include <stdio.h>
int main()
{
    float x2x(int a,int b);
    int num1 = 5;
    int num2 = 8;
    float result = x2x(num1,num2);
    printf("The result is:%f\n",result);return 0;
}

sub1.c

#include <stdio.h>
float x2x(int a, int b)
{
    return (float)(a * b) / (a + b);
}

3. 编译命令

gcc main1.c sub1.c -o main1
./main1

4. 实验结果

程序成功运行,输出:

The result is:3.076923

604d709c00a1192734e1eb3a3cf202d8_0

5. 任务小结

Linux 下多文件程序必须同时编译所有依赖文件,否则找不到自定义函数,编译失败。


任务二:Linux Makefile 自动化编译

1. 实验原理

Makefile 用于管理大型项目,自动完成编译、更新、清理,不用每次输入长串 gcc 命令。

2. 编写 Makefile 文件

文件名必须为:Makefile(首字母大写、无后缀)

# Makefile
all:main1

main1:main1.c sub1.c
	gcc main1.c sub1.c -o main1

clean:
	rm -f main1

注意:gcc 前面必须是 Tab 缩进,不能用空格

3. 执行命令

make
./main1
make clean

4. 实验结果

  • make 自动完成编译,生成可执行文件

  • 运行结果与任务一完全一致

  • make clean 可清除编译产物

a8161755d5b3b2f27f827de8e4037143_0

5. 任务小结

Makefile 实现了一键编译、一键清理,极大提高多文件项目开发效率。


任务三:Windows Dev-C++ 多文件项目编译运行

1. 实验原理

Windows 下不能直接单独打开两个 .c 文件,必须创建项目工程,将两个文件加入同一工程才能正常调用函数。

2. 操作步骤

  1. Dev-C++ 新建【控制台项目】

  2. 删除自动生成的 main.cpp(防止多 main 冲突报错)

  3. 新建并保存 main1.csub1.c

  4. 右键项目 → 添加文件,将两个 .c 文件加入工程

  5. 编译运行(F11)

    代码1:

    #include <stdio.h>
    
    int main()
    {
        float x2x(int a,int b);
    	int num1 = 5;
        int num2 = 8;
        float result = x2x(num1,num2);
        printf("The result is %f\n",result);
        return 0;
    }
    
    

    代码2:

    #include <stdio.h>
    float x2x(int a, int b)
    {
        return (float)(a * b) / (a + b);
    }
    

3. 实验结果

Windows 端成功编译运行,输出结果:

The result is: 3.076923

e39b6dbaaee56d7a9634c413bab4d048_0

4. 任务小结

Windows 多文件编程依赖项目工程管理,同一工程只能存在一个 main 函数,否则报重定义错误。


四、实验总结

  1. C 语言支持代码拆分,主程序和功能函数可以分文件存放,结构更清晰。
  2. Linux 手动 gcc 编译适合小程序,Makefile 适合正式项目自动化构建。
  3. Windows 与 Linux C 语言代码可通用,但编译方式不同。
  4. 多文件编程核心:函数声明、文件关联、工程统一编译

五、实验心得

通过本次实验掌握了 Linux 多文件编译、Makefile 使用、Windows 跨平台编译,理解了大型程序的文件分层思想,为后续嵌入式开发、大型项目开发打下基础。

posted @ 2026-09-15 13:14  dy猫猫  阅读(19)  评论(0)    收藏  举报