嵌入式开发基础01:Ubuntu系统下简单C程序的编译和运行
概述:本文主要讲解Ubuntu系统下,运用vim、gcc、makefile工具编译、运行简单的C程序(输出“hello ,world”)及
返回两整型参数的求和)。
一、开发工具
1、 开发工具简介
(1)vim文本编辑器
vim拥有各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用,比那些没有模式的编辑器更加高效的进行文本编辑。同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。
Vim具有三种模式:命令模式、插入模式、低行模式。运用vim命令直接打开文件默认是在命令模式下。
命令模式:不能直接编辑文本,输入的字母会被当作命令执行。
插入模式:在命令模式下输入字母i可切换到插入模式,在当前光标前输入,插入模式下按Esc可以返回命令模式。
低行模式:在此模式下可进行保存、字符替换等操作,低行模式命令以回车结束,或者以Esc返回命令模式。
vim编辑器进入指令
vim 文件名(带后缀)
编辑器打开文件在低行模式下
q!+回车 不保存退出
wq+回车 保存退出
命令模式下光标移动:
h 左移
l 右移
k 上移
j 下移
H 当前屏幕第一行
M 当前屏幕中间
L 当前屏幕最后一行
插入文本或行:
a 在当前光标位置的右边添加文本
i 在当前光标位置的左边添加文本
A 在当前行的末尾位置添加文本
I 在当前行的开始处添加文本(非空字符的行首)
O 在当前行的上面新建一行
o 在当前行的下面新建一行
R 替换(覆盖)当前光标位置及后面的若干文本\nJ 合并光标所在行及下一行为一行(依然在命令模式)
(2)gcc编译器
GCC即GUN Compiler Collection,是由GUN开发的编程语言编译器经拓展后,由只能处理C语言拓展为能够支持C++、java、Go以及各类处理器架构上的汇编语言等。现已被大多数类Unix操作系统(如Linux、BSD、MacOS X等)采纳为标准的编译器
在本文中,使用gcc编译C程序操作如下:
在hello.c文件保存后,在文件目录下打开命令窗口,输入命令:
gcc hello.c -o hello可以将hello.c文件编译链接为可执行文件hello.
然后通过命令./hello来运行可执行文件。(如果不指定文件名,如hello,gcc将生成名为a.out的文件,.out文件是用以区分编译后的文件,Linux下的可执行文件并没有标准的后缀,一般可执行文件没有后缀名。)
2、开发工具安装
在命令行中,执行以下命令完成开发工具的安装
sudo apt-get install vim
sudo apt-get install gcc
二、运行hello world程序
1、建立文件
使用vim建立一个新文件的命令格式为“vim 文件名”。使用命令建立一个hello.c的C语言源文件,并同时将文件打开,输入i进入插入模式,编写代码。
#include<stdio.h>
int main(void)
{
printf("hello world");
}
编辑完成后,按Esc进入普通模式后输入 :wq保存并退出vim编辑器
2、编译运行
输入命令
gcc hello.c -o hello
生成可执行的hello文件,输入指令
./hello
运行结果如下
三、Ubuntn系统与Windows系统下返回两整型参数和
1、建立文件
首先在vim中编写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;
}
编辑sub1.c文件,代码如下:
#include<stdio.h>
float x2x(int x,int y)
{
float sum;
sum=x+y;
return sum;
}
输入命令gcc -o main main.c subq.c与==./main==运行结果如下:
Windows 在dev集成开发环境下编译运行即可
四、Ubuntn系统下Makefile的使用
1、Makefile简介
Makefile是在Linux环境下 C/C++ 程序开发必须要掌握的一个工程管理文件,描述了整个工程的编译和链接等规则。
以下简单介绍以下Makefile文件的编写规则
target…:prerequisites…
command
…
target是一个目标文件,可以是Object File、执行文件或者一个标签(Label)。
prerequisites是要生成target所需要的文件或是目标。
command是make需要执行的命令。
2、Makefile的使用
依次输入命令gcc -c main.c与gcc -c sub1.c生成文件main.o和sub1.o.
然后,输入命令vim makefile在vim中编写makefile内容如下(makefile与main.c,sub1.c在同一目录下)
输入make与==./main==,得到最终结果如下: