摘 要:文章先介绍了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-),女,籍贯:海南;职称和学历:本科;研究方向或专业:计算机科学与技术专业。

linux系统c 如何使用教程,基于Linux操作系统的C语言编译和调试方法解析相关推荐

  1. 应用linux系统的机器人,一种基于linux的机器人系统及方法与流程

    技术特征: 1.一种基于linux的ros+android+移动底盘rtos深度融合的机器人系统,其特征在于,包括器人主板.移动底盘以及云端,所述机器人主板为linux系统.ros系统以及androi ...

  2. 以Linux系统上的gcc为例,解密C语言编译背后的全过程!

    在这个互联网时代,很多人都选择了计算机专业,而只要是计算机专业的小伙伴,可能都会学C语言,但是大家是否都清楚C语言编译的完整过程呢,今天我就带着大家一起来做个解密吧. C语言相对于汇编语言是一种高级语 ...

  3. linux系统输入法怎么安装教程视频教程,Linux怎么安装中文输入法

    受够了Linux那不友好的输入法?想要在Linux上面安装中文输入法?小编为大家分享了Linux安装中文输入法的解决方法,下面大家跟着学习啦小编一起来了解一下吧. Linux安装中文输入法 Ubunt ...

  4. linux系统连接校园无线网络,基于Linux环境下校园无线网络安全平台的设计与实现...

    摘要: 无线网络具有灵活性和移动性,安装便捷,联网成本低,可以随时随地上网.校园网无线功能可以提供日常互联网连接外,还能够将校内的精品课资源,网络电子学习资源,OA系统的使用等都转移到移动设备上实现. ...

  5. Linux系统搭建钓鱼WIFI教程,Kali linux创建钓鱼wifi热点

    最近做了一个小的安全意识培训,目的是让小伙伴们谨防不信任的Wifi热点,用到了kali linux下的一些小工具.我是用物理机安装的kali linux,然后外接了一个无线网卡wlan2. 具体的技术 ...

  6. Python在Linux实现代码特效,关于在Linux系统上的Ubuntu上基于python3、shell语言代码的实现...

    首先打开执行终端,然后进入路径(执行文件的目录): 1.python3语言代码的实现步骤: 1>python3 xxx.py(一步实现) 2.shell语言代码的实现步骤: 1>获取属主的 ...

  7. win7安装linux子系统,linux系统装win7系统安装教程【图文教程】

    说到linux系统可能很多人都不是特别的了解,因为在我们接触电脑用的最多的还是Windows系统.linux系统是一个基于POSIX多用户和多任务的一种CPU操作系统.但是一般人在选择的时候,还是会倾 ...

  8. Linux系统简介-虚拟机安装教程(保姆级)-Linux常用命令

    Linux系统简介-虚拟机安装教程-Linux常用命令 1.Linux系统简介 1.1Linux系统的历史 1.2Linux系统的特点和优势 1.3Linux发行版的分类 2.虚拟机的安装教程 2.1 ...

  9. Linux系统root密码重置教程

    Linux系统root密码重置教程 一.系统版本 二.进入开机界面,按e,选择启动内核 三.进入恢复模式 1.进入内核启动命令行 2.在quiet后面加入rd.break 3.按ctrl+x,进入系统 ...

最新文章

  1. Spring Boot 的 10 个核心模块
  2. php 是否包含 大写,PHP检查字符串中是否包含大写字符
  3. Android 7.0 Gallery图库源码分析2 - 分析启动流程
  4. zigbee zstack 串口,按键,消息,定时器
  5. 关于Jeecg互联网化dubbo改造方案(上)
  6. docker swarm k8s比较_Docker 图形化管理又有更新了
  7. 百度页面的html5结构,HTML5+CSS3网站设计基础教程
  8. Linux memcache操作命令
  9. Apache Solr Java 企业级搜索引擎
  10. QQ、UC手机浏览器访问电脑版网页
  11. php清除垃圾代码,批处理清理系统垃圾代码,简单快速实用(适用于xp win7)
  12. Mask R-CNN结构细节回顾
  13. 使用FFmpeg合并/解密/下载m3u8文件转为mp4格式
  14. 【规律】Cunning Friends
  15. md 生成目录 码云_DuangDuangDuang!码云项目的 Readme.md 特殊技能
  16. [深度学习 - 实战项目] CRAFTCRNN_seq2seq图片文字提取
  17. 完整版一元稀疏多项式计算器
  18. 吴恩达老师DeepLearning系列课程最详细学习笔记之4—为什么深度学习会兴起?
  19. c语言实现图片缩放,图片缩放与合并(C语言实现)
  20. 时间复杂度 ( 递归实现阶乘、斐波那契数列第n个数) / 空间复杂度

热门文章

  1. tchar与char不兼容_TCHAR和CHAR类型的互转
  2. 用python输出“韦国海”
  3. Android 耳返实践 OpenSL ES AAudio Oboe
  4. SHELL编程——初识SHELL编程
  5. bVS2008破解方法/b
  6. 使用poi实现Excel的数据分页导出(很全),线上项目可用
  7. TRS电信114企业搜索引擎解决方案
  8. vmware centos7 设置同时连接内外网
  9. iOS iBeacon 使用
  10. Python并行计算简单实现