前言

如何使用树莓派编译C语言代码呢?

113227666

21年暑假的时候,学习编程的劲头高涨,然后冲动消费买了个树莓派4B……结果压根不会用,吃灰了半年

不过现在已经学完了C语言,也接触了一丢丢Linux系统下的gcc指令,可以尝试用它来编写C语言代码了!


1.创建test.c文件

首先我们需要在一个文件夹里创建一个test.c文件

image-20220226125026400

点击test.c文件后,树莓派会用自带的Geany编辑器打开它

然后我们可以往里写入C语言最经典的helloword代码

1
2
3
4
5
6
7
#include <stdio.h>
int main(void)
{
printf("hello wordl!\n");

return 0;
}

2.编译运行该文件

保存文件后,打开顶部的命令行

image-20220226125340248

输入以下代码

注意cd后需要空格,填写的是刚刚创建的test1.c文件的路径

1
cd /home/pi/code

填写完毕后,可以看到命令行前面多出了一个文件地址

image-20220226125524671

这代表目前我们操作的是code文件夹里面的内容

输入ls,可以看到当下文件夹里的文件

image-20220226125747922

输入以下指令,可以生成一个可执行文件

1
gcc test1.c -o test1

image-20220226130541472

最后输入以下指令,可以运行该文件!

1
./test1

可以看到,程序已经成功运行了!

image-20220226130646985


3.编译并链接两个源文件

接下来我们再尝试一个相对来说更复杂的代码

分开两个源文件,一个是test.c,包含了main函数

另外一个是Add.c,包含了Add函数

因为是在不同的源文件里面,我们需要用extern来声明外部函数

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>

extern int Add(int x,int y);

int main(void)
{
int a=3;
int b=5;
printf("%d",Add(a,b);

return 0;
}

image-20220226131121788

接下来我们使用-c指令来生成.o目标文件

在vs下,目标文件的后缀是.obj

.i文件为预编译文件

可以看到,我的代码里面extern写错了(很是尴尬),编译器报了警告

更改了以后就编译成功了

这一步是把C语言代码转换成机器认识的二进制指令

image-20220226132043077

然后输入以下指令,链接这两个文件,生成可执行文件test

1
gcc test1.c Add.c -o test

image-20220226132417468

最后还是使用./test指令来运行可执行文件

可以看到我们的结果已经输出了!


结语

第一次尝试用linux的gcc指令来编译C语言代码,还有点小激动

吃灰的树莓派终于有用了!😍

如果有写的不对的地方,还请大佬无情指出!