APP下载

基于Linux操作系统的C语言编译和调试方法解析

2020-03-02蔡雅慧

科学与财富 2020年1期

摘 要:文章先介绍了GCC编译器相关内容,包括GCC编译程序和GCC编译选项,随后介绍了GDB调试程序相关内容,包括GDB具体操作和GDB基础命令,最后介绍了C语言编写中的注意事项,希望能给相关人士提供有效参考。

关键词:Linux操作系统;C语言编译;调试方法

引言:C语言拥有较强的表达能力、应用范围较广、功能丰富,同时目标程序的运行效率相对较高,拥有良好的可移植性,不但拥有高级语言应用优势,同时还兼具低语言特征。为此C语言也是当下推广速度最快的计算机语言。

一、GCC编译器

(一)GCC编译程序

Linux OS系统中应用的C编译器主要是GCC编译器,如果初步了解其他控制系统中的某种C编译器,则便会快速掌握GCC操作。结合相关编辑软件编制完成某一C语言源程序后,会直接进入下面几项环节,分别是程序运行、连接、开展编译工作、程序输入等。比如在设计C源程序的filel.c时,通过编译后可以或得filel.o的目标文件,并和系统中的库函数实施有效连接,最终获得filel.out可执行文件,并开始启动filel.out文件运行。

GCC编译器执行命令的具体用法如下所示:

GCC[选项][文件名]

GCC编译程序中如果不存在任何选项的条件下,便会自动生成一种a.out可执行文件,比如以下命令会在现有目录下生成一种称作a.out的文件,相关文件名为gcc filel.c。

如果想要改变系统默认文件名a.out,在开展编译工作中相关技术人员可以自主指定相应的可执行文件名,从而对系统自动生成的a.out文件实施有效替换,比如可以把filel.c名字的C程序改编为filel.out名字的可执行文件,并按照下方命令参考输入:gcc-o filel.out filel.c。操作中需要注意应用-0选项过程中,后面应该紧跟一种文件名[1]。

(二)GCC编译选项

GCC编译选项多种多样,其中仅有少部分会频繁选用,除了相关选项之外,还包含各种不会经常应用的选项,为此可以输入man gcc,并查阅其应用方法。除此之外,部分GCC选项内还包含超出一个的字符,为此应该针对各个选项指定相应的连字符-,尽量不要在同一连字符后面陆续跟多个选项。比如-p、-g、-pg三种选项最终的执行结完全不同,前者主要是剖析建立信息,随后将相应的调试信息添加到可执行文件内,而后者是单纯构建剖析信息。

二、GDB调试程序

(一)GDB具体操作

Linux操作系统中设置有GDB调试器,该种装置主要作用是调试C语言的程序工具,其中CDB提供的具体功能包括程序中可监视的变量值,可以合理设置断点,从而方便在指定代码的基础上,让程序停止运行,并按照顺序一行行落实具体程序。为了保证GDB的正常运行,需要在进行编译的过程中,让程序含有调试信息。调试信息中囊括了程序内各种变量类型,同时还含有可执行文件内的地址映射,和机器码互相关联。

假如启动GDB调试器并运行,则需要于命令行中输入GDB,随后按下回车键,便可以顺利启动运行GDB,在启动GDB后,显示屏幕中还会展示出相应的提示信息,最后一行主要是GDB提示符号:(gdb)。

(二)GDB基础命令

GDB能够为多种命令实现具体功能提供可靠支持。相关命令从原本的简单文件内转入允许检查调用堆栈内容当中,下面介绍在GDB实施程序调试过程中经常会应用到的几种命令:命令file主要功能是将即将调试对象可执行文件装入;kill命令的功能是将调试中的程序终止;list命令功能为将执行文件中部分源代码列出;next命令主要功能是执行某行源代码,但不会进入到函数内部;step命令的功能是按照某行源代码执行,但不会进入函数内;run命令功能是按照当下被调试程序执行;quit命令的功能是从GDB中彻底退出;watch命令的具体功能是针对某一变量进行全面监控,不论其什么时候会被改变;break命令的主要功能是设计断点,保证当程序在运行到一定条件下可以被挂起;make命令功能是只要不从GDB内退出,便可以重新生成执行文件。通过将GDB-H输入到命令行中,便可以获得相关命令选项的列表说明[2]。

三、C语言编写注意事项

Linux操作系统内编写C语言的过程中,需要注意下面几种问题:

第一是和其他系統内进行C语言编写程序相同,包括编辑、编译、调试、运行等步骤,调试方法也大致相同,比如够能够设计断点,单步执行调试程序。第二是在DOS以及WINDOWS相关操作系统中,主要是应用TUBRO C,但其属于一种女汇集运行、调试、编辑多种功能的编程环境,但在Linux操作系统操作系统中,应该如同记DOS命令,把所有命令选项、应用方法和参数全部记住。第三是C语言在各个操作系统里面都是.C的扩展名,但执行文件以及目标文件相关扩展名则大不相同,比如Windows以及DOS相关系统中的目标文件全部是.obj,而相关执行文件则是.exe。但在Linux操作系统以及UNIX系统内,目标文件扩展名是,o,而执行文件的扩展名则是.out,其中需要着重注意,不然便会导致系统无法准确找出相关文件,最终出现错误。

综上所述,Linux操作系统是全世界范围内最为知名的自由免费软件,其自身便属于一种可以和Windows相媲美的系统,并在互联网中发布出来,大部分人会将其下载下来并结合自身需求不断完善其相关功能,将Linux打造成一种拥有广泛发展前景、较为稳定的操作系统,该系统内还包含多种C语言开发工具。

参考文献:

[1]杨炎熙.关于嵌入式Linux操作系统的开发及应用的研究[J].数字通信世界,2019(11):156.

[2]菅华.深度挖掘配置核查与口令自动化加固工具在实际工作中的应用[J].信息通信,2019(09):100-103.

作者简介:

蔡雅慧(1996-),女,籍贯:海南;职称和学历:本科;研究方向或专业:计算机科学与技术专业。