嵌入式01:Ubuntu系统下运用vim和gcc编辑、编译简单C程序

本文详细介绍了在Ubuntu系统中如何编写C语言基础程序,包括HelloWorld示例,两个整数参数的加法函数,以及Makefile的配置与使用。涵盖了网络设置、vim编辑器与gcc编译器的安装,以及跨平台编译比较和Makefile的编写教程。

概述:本文主要讲解Ubuntu系统下简单C程序(hello wrold与两整型参数的求和)的编写,其中包含了虚拟机网络的简单介绍及编写C程序所涉及的vim编辑器与gcc编译器,同时也包含Makefile的简单运用。

目录

一、网络

二、安装vim编辑器及gcc编译器

1.安装

2.简介

(1)vim编辑器

(2)gcc编译器

三、C语言编写hello world程序

 四、Ubuntu系统与Windows系统下两输入整型参数运算

1.Ubuntu系统

2.Windows系统

五、在Ubuntu系统下运用Makefile编写以上主程序 

1.Makefile简介

2.编写makefile文件并编译


一、网络

vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)NAT(网络地址转换模式)Host-Only(仅主机模式)。打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),同时,在主机上对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,它们分别作用于仅主机模式与NAT模式下。在“网络连接”中我们可以看到这两块虚拟网卡,如果将这两块卸载了,可以在vmware的“编辑”下的“虚拟网络编辑器”中点击“还原默认设置”,可重新将虚拟网卡还原。

 

 

二、安装vim编辑器及gcc编译器

1.安装

(1)安装vim编辑器可以使用以下命令

sudo apt-get install vim

正在安装vim

(2)安装gcc编译器可以使用以下指令

sudo apt-get install gcc

正在安装gcc:

2.简介

(1)vim编辑器

Vim是一个从vi发展出来的一个高级文本编辑器,有着代码齐全、编译及错误跳转等方便编程的优点。

Vim具有三种模式:命令模式、插入模式、低行模式。运用vi命令直接打开文件默认是在命令模式下。

命令模式:不能直接编辑文本,输入的字母会被当作命令执行。

插入模式:在命令模式下输入字母i可切换到插入模式,在当前光标前输入,插入模式下按Esc可以返回命令模式。

低行模式:在此模式下可进行保存、字符替换等操作,低行模式命令以回车结束,或者以Esc返回命令模式。

vim编辑器进入指令

vim 文件名(带后缀)

vim编辑器打开文件在低行模式下

q!+回车    不保存退出

wq+回车   保存退出

命令模式下光标移动:

h  左移

l   右移

k  上移

j   下移

H  当前屏幕第一行

M  当前屏幕中间

L   当前屏幕最后一行

插入文本或行:

a  在当前光标位置的右边添加文本
i   在当前光标位置的左边添加文本
A  在当前行的末尾位置添加文本
I  在当前行的开始处添加文本(非空字符的行首)
O  在当前行的上面新建一行
o  在当前行的下面新建一行
R  替换(覆盖)当前光标位置及后面的若干文本
J  合并光标所在行及下一行为一行(依然在命令模式)

(可参考https://blog.csdn.net/lvdepeng123/article/details/79669874了解更多具体的vi/vim指令)

(2)gcc编译器

GCC即GNU Compiler Collection,是GNU工具链的主要组成部分,是一套以 GPL 和 LGPL 许可证发布的程序语言编译器自由软件。GCC原本只能处理C语言,但现在不仅可以编译C、C++和Objective-C,还可以通过不同的前端模块支持各种语言,包括Java、Fortran、Ada等语言。

以下将简单叙述使用gcc来编译C程序。

在文件test.c保存成功后,通过cd命令到当前目录,输入以下命令gcc test.c -o test可以直接将C代码编译链接为可执行文件test。

然后通过命令./test来运行可执行文件。(如果不指定文件名,如test,GCC将生成名为a.out的文件,.out文件是用以区分编译后的文件,Linux下的可执行文件并没有标准的后缀,一般可执行文件没有后缀名。)

注意:

在安装vim编辑器与gcc编译器时遇到如下问题时可参考 http://t.csdn.cn/DkVkl进行解决。

三、C语言编写hello world程序

运用C语言编写一个见到的输出hello wrold的程序,输入命令 vim hello.c  进入vim编译器,输入进入插入模式,编写代码

#include<stdio.h>
int main(void)
{
   printf("hello world");
}

编译完成后,按下Esc按键,输入:wq!退出vim编辑器。

输入命令

gcc hello.c -o hello

将生成一个hello文件,输入指令

./hello

运行文件得到的运行结果如下所示

 四、Ubuntu系统与Windows系统下两输入整型参数运算

要求: 编写一个主程序文件 main1.c 和一个子程序文件 sub1.c,子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。

1.Ubuntu系统

首先输入命令vim main.c编写main.c文件(步骤大致如上),代码如下

#include<stdio.h>
extern float x2x(int x,int y);
int main()
{

int x,y;
printf("x=");scanf("%d",&x);
printf("y=");scanf("%d",&y);
float sum;
sum=x2x(x,y);
printf("sum=%f\n",sum);
return 0;

}

其次,输入命令vim sub1.c编写文件sub1.c,其代码如下

#include<stdio.h>
float x2x(int x,int y)
{

float sum;
sum=x+y;
return sum;

}

然后一次输入命令gcc -o main main.c sub1.c./main所得运行结果如下

2.Windows系统

此处在Windows系统下运用Dev C++进行编译。

首先编写main.c文件

#include<stdio.h>
#include"sub1.c"
int main()
{
	int x,y;
	scanf("%d %d",&x,&y);
	float sum;
	sum=x2x(x,y);
	printf("%f\n",sum);
	return 0;
 } 

然后编写sub1.c文件

#include<stdio.h>
float x2x(int x,int y)
{
	float sum;
	sum=x+y;
	return sum;
	
}

将两文件保存在同一文件夹下,然后编译运行得到如下结果

此处针对所引用的sub1文件,同时运用.h与.c后缀进行过测试,发现两种均可编译运行(在Dev C++上需要先编译sub1.c文件在编译要运行main.c文件,否则将出现报错)。

总结对比:Ubuntu系统与Windows系统下Dev C++的编译运行结果一致。

五、在Ubuntu系统下运用Makefile编写以上主程序 

1.Makefile简介

Makefile是在Linux环境下 C/C++ 程序开发必须要掌握的一个工程管理文件,描述了整个工程的编译和链接等规则。

以下简单介绍以下Makefile文件的编写规则

target…:prerequisites…
    command
    …

  target是一个目标文件,可以是Object File、执行文件或者一个标签(Label)。

  prerequisites是要生成target所需要的文件或是目标。

  command是make需要执行的命令。

2.编写makefile文件并编译

首先,需要安装make,通过命令 sudo apt-get install make进行安装。

其次,依次输入命令gcc -c main.c与gcc -c sub1.c生成文件main.o和sub1.o.

然后,输入命令vim makefile在vim中编写makefile内容如下(makefile与main.c,sub1.c在同一目录下)

 最后,依次输入命令make./main,最终得到结果如下所示:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值