嵌入式操作系统Linux编程实验四

一、实验目的

1.掌握Linux进行C语言编程的基本方法;

2.练习并掌握 Linux 提供的 vi 编辑器来编译 C 程序;

3.熟悉编译流程,学会利用 gcc、gdb 编译、调试 C 程序。

二、实验内容

1.学会使用gcc编译C程序,利用gdb调试程序;

2.在Linux下编辑、编译、运行该程序;

3.使用vim编写makefile文件,编译main.c文件,并编写相应的清除功能;

4.使用gcc编写C语言程序,编译并观察编译后的结果,运行生成的可执行文件。

三、实验器材(设备、元器件)

(一)装有VMware软件的计算机一台(虚拟机软件)

(二)系统镜像文件

四、实验步骤

1.编写代码

  先在用户根目录下创建一个工作文件夹:C_file,所有的C语言练习都保存到这个工作目录下,创建目录过程如下;

  进入创建的C_file文件夹,然后创建一个名为“hh”的文件夹来保存我们的“Hello World”程序相关文件,创建工作文件夹过程如下:

  实验过程中会使用到VI编译器,vi可以分为三种模式,分别是一般模式、编辑模式及命令行模式,我们需要先做以下配置:

1.1设置TAB键为4字节

  VI编译器默认TAB1键为8空格,我们改为4空格,用vi打开文件/etc/vim/vimrc,在此文件输入set ts=4即可;

1.2 VIM编译器显示行号

  VIM编译器默认是不显示行号的,我们设置VIM编译器显示行号,同样是在文件/etc/vim/vimrc中添加代码来实现,在文件最后面加入set nu 即可;

  修改完成后按Esc进入命令模式输入冒号及wq保存并关闭文件。

1.3 编写代码

  C程序通常以.c扩展名结尾。可以使用任何文本编辑器来编写C程序,例如vim、nano、gedit等。在编辑器中打开一个新文档,然后编写C代码。VI编译器可以自行定制,在前面创建的“hh”文件夹里,使用vi指令创建一个名为“main.c”的文件,然后输入如下代码;

  在一般模式下输入“i”即可进入编辑模式,编辑完成后,按【Esc】键就可以跳出编辑模式,此时输入“:wq”然后回车即可保存当前数据并退出。

1.4 保存退出

  编写完成后保存退出vi编辑器,可以使用“cat”命令查看代码是否编写成功,如图所示,编辑成功后需要对其进行编译。

2、编译代码

2.1 Ubuntu下的C语言编译器是GCC,GCC编译器在我们装Ubuntu的时候已经默认装好,可以通过gcc –v命令查看GCC编译器的版本号,gcc的编译过程如下:

2.2 使用GCC编译器来编译main.c文件,由于GCC编译器是命令模式,所以需要输入命令来使用gcc编译器来编译文件。

当编译完成后会生成一个a.out文件,这个文件就是编译生成的可执行文件,执行文件看看是否和我们代码的功能一样,执行“./+可执行文件”命令即可;文件后端输出“Hello World”正是main.c实现的功能,说明程序没有错误。

2.3 只编译不链接为可执行文件,编译器将输入的.c文件编译为.o文件;

2.4 在使用gcc命令的时候加上-o来指定生成的可执行文件名字

3、运行程序

  程序编译完成后,可以通过执行可执行文件来运行程序。程序运行时会输出“Hello World!”

4、调试程序

  调试是在开发过程中非常重要的部分。在Linux上,GDB是最流行的调试器之一。GDB可以帮助开发人员在程序中找到错误,并支持逐步执行,设置断点等功能。要使用GDB,需要在编译时添加“-g”选项,以便在执行文件中生成调试信息。

5.make工具及Makefile使用

  利用make工具可以自动完成编译工作,这些工作包括:

  1. 如果修改了某几个源文件,则重新编译这几个源文件;
  2. 如果某个头文件被修改了,则重新编译所以包含该头文件的源文件;
  3. 新建下面几个文件夹并使用Makefile:

5.1 main.c文件内容如下:

5.2 input.c文件内容如下:

5.3 calcu.c文件内容如下:

5.4 input.h文件内容如下:

5.5 calcu.h文件内容如下:

  以上就是过程所有文件,在终端输入gcc main.c input.c calcu.c –o main命令对这三个文件进行编译,编译完成后执行main这个程序,测试一下软件是否正常工作。

  如果修改的文件过多,就会忘记哪些文件被修改过,所以需要使用到Makefile这个工具:

  1. 如果工程没有编译过,那么过程中所以.c文件都要被编译并且链接成可执行文件;
  2. 如果工程中只有个别C文件被修改了,那么编译这些C文件即可;
  3. 如果工程头文件被修改,那么我们需要编译所有引用这个头文件的C文件,并且链接成可执行文件。

  很明显,能够实现这个功能就是Makefile,在工程目录下创建名为“Makefile”,文件名固定,区分大小写,文件内容如下;

  注:上述代码首行空出来一定要使用”TAB”键,不要使用空格,这是Makefile语法要求。

  实现Makefile功能如下:

  • 34
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值