嵌入式系统第一次作业

嵌入式系统第一次作业,第1张

文章目录
  • 一 .题目要求
  • 二 .解答过程详解
    • 1.由题意先完成程序文件
    • 2.在ubuntu系统中用gcc 命令行方式编译主程序main1.c 并运行
      • 2.1先了解gcc编译命令
      • 2.2其次将编写的程序文件存入统一文件夹
      • 2.3编写命令并运行测试
    • 3.在windows系统下用编译主程序main1.c 并运行。
      • 3.1在vs2022上建立程序文件
      • 3.2测试运行
    • 4.在ubuntu系统下用Makefile方式编程主程序
      • 4.1了解makefile编译文件规则
      • 4.2编写makefile文件并存入同一文件夹里
      • 4.3运行测试
    • 5.总结

一 .题目要求

任务4.请编写一个主程序文件 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 并运行。

任务5. 在任务4基础上,在ubuntu系统下用Makefile方式编程主程序

二 .解答过程详解 1.由题意先完成程序文件

sub1.c

#include "sub1.h"

float x2x(int a, int b)
{
	float ans;
	ans = (float)b / a;
	return ans;
}

sub1.h

#ifndef __SUB1_H
#define __SUB1_H
#include
float x2x(int a, int b);        
#endif

main1.c

#include"sub1.h"

int main()
{
	int x = 6, y = 9;            
	printf("%.2f\n", x2x(x, y));     
	return 0;
}
2.在ubuntu系统中用gcc 命令行方式编译主程序main1.c 并运行 2.1先了解gcc编译命令

单个源文件的编译方法(假设源程序文件名为test.c)

\1. 无选项编译链接
用法:#gcc test.c
作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。

\2. 选项 -o
用法:#gcc test.c -o test
作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。

\3. 选项 -E
用法:#gcc -E test.c -o test.i
作用:将test.c预处理输出test.i文件。

\4. 选项 -S
用法:#gcc -S test.i
作用:将预处理输出文件test.i汇编成test.s文件。

\5. 选项 -c
用法:#gcc -c test.s
作用:将汇编输出文件test.s编译输出test.o文件。

\6. 无选项链接
用法:#gcc test.o -o test
作用:将编译输出文件test.o链接成最终可执行文件test。

多源文件的编译方法(假设有两个源文件为test.c和testfun.c)

\1. 多个文件一起编译
用法:#gcc testfun.c test.c -o test
作用:将testfun.c和test.c分别编译后链接成test可执行文件。

\2. 分别编译各个源文件,之后对编译后输出的目标文件链接。
用法:
#gcc -c testfun.c //将testfun.c编译成testfun.o
#gcc -c test.c //将test.c编译成test.o
#gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test

2.2其次将编写的程序文件存入统一文件夹

2.3编写命令并运行测试


成功运行

3.在windows系统下用编译主程序main1.c 并运行。 3.1在vs2022上建立程序文件

3.2测试运行

成功运行

4.在ubuntu系统下用Makefile方式编程主程序 4.1了解makefile编译文件规则

makefile其实就是一个文档,里面定义了一系列的规则指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,它记录了原始码如何编译的详细信息! makefile一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

makefile的规则:

目标(target):目标文件1 目标文件2

(Tab) gcc -o 欲建立的执行文件 目标文件1 目标文件2

4.2编写makefile文件并存入同一文件夹里

编写makefile文件

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

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

clean:
        rm *.o 

放入文件夹

4.3运行测试


成功运行

5.总结
此次作业让我掌握了一些Ubuntu常用命令,并且对文件的编译过程有了一个完整清晰的认识

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/2889672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-14
下一篇 2022-09-14

发表评论

登录后才能评论

评论列表(0条)

保存