我们都是小白之嵌入式学习(一)


前言

在学习本课程前需要做的准备工作有,完成Ubuntu/Debian的安装,和所需要的库文件(gcc)的下载


一、使用GCC完成HelloWorld的编程

可以先创建一个单独的文件夹来保存我们的作业。
在这里插入图片描述
刚刚创建的文件夹下创建一个空的文件,命名为hello.c
在这里插入图片描述
在hello.c文件中写入HelloWorld的输出
在这里插入图片描述
然后打开控制台,进入文件所在的文件夹,使用gcc -o hello hello.c可以得到一个命名为hello的文件,之后使用./hello运行hello,就可以得到输出了
在这里插入图片描述
至此,可以验证我们的虚拟机,gcc库并没有问题

二、使用GCC完成两个程序的链接并输出

在这里,我们讲使用命名为main1.c的主程序文件和一个命名为sub1.c的子程序文件 。我们需要做的工作为讲这两个程序链接起来,并完成对其中函数的操作。

首先创建两个文件,分别为main1.c、sub1.c
在这里插入图片描述

  • main1.c
#include<stdio.h>
#include"sub1."

int main()
{
	int a,b;
	scanf("%d",&a);           
	scanf("%d",&b);  
	printf("%.2f\n",x2x(x,y));      //输出处理后的值,保留两位小数
	return 0;
}
  • sub1.c
float x2x(int a,int b)
{
	float back;      //返回值为back
	back=a+b;
	return back;
}

接着我们使用gcc main1.c -o main1讲主程序进行编译,然后使用./main1进行程序运行
在这里插入图片描述
如上图,我们输入5和6,进行运算得到11,并保留了2位小数。

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

三、与Windows上编程做比较

在我们自己的编程软件(我使用的是visual studio 2019)上创建两个文件,分别为main1.c、sub1.h

  • main1.c
#include<stdio.h>
#include"sub1.h"

int main() {
	float x=2, y=3;
	printf("%f", x2x(x,y));
	return 0;
}
  • sub1.h
 float x2x(int a, int b)
{
	float back;
	back = a + b;
	return back;
}

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

四、使用Makefile方式编程主程序

1.安装Makefile

我们获取root权限后,输入apt-get install make
在这里插入图片描述

2.了解Makefile编程规则

target:prerequisites command # command以一个tab键开始

target为一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)
prerequisites是需要生成target所依赖的文件或是目标 command也就是make需要执行的命令。(任意的Shell命令)

3.实例编程

在进行运行前,我们需要更改main1.c,并创建一个名为sub1.h的文件

  • sub1.h
floar x2x(int a,int b);
  • 更改main1.c为
#include<stdio.h>
#include"sub1.h"

int main() {
	float x=2, y=3;
	printf("%f", x2x(x,y));
	return 0;
}

接着,创建一个名为Makefile的文件

  • Makefile(注意:gcc,rm前的空格必须由TAB键空出来,不能使用空格键)
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 

然后我们来到字符界面,输入make进行编译,之后就可以使用./main1运行程序
在这里插入图片描述

总结

对比起在windows下借用编译工具来编程而言,我们在linux中的编程更加复杂一些,但同时也让我们对于,编译的实际过程更加了解,有助于我们对于底层开发的学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值