版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.项目主题介绍,2。使用虚拟仪器编辑器的方法。Linux下c语言程序的编辑,4。c语言程序在Linux中的运行。案例现场演示,项目背景介绍,一个c语言程序在Linux操作系统下的设计,程序运行时,显示了以下:的运行效果,项目分析介绍,完成本项目需要解决的问题:1 .在Linux 2下我们使用什么工具。我们如何在Linux操作系统中编译和运行C程序?3.我们如何在Linux操作系统中调试我们的程序?本课程介绍教学目标,学习本课需要达到的教学目标:掌握Vi编辑器的启动和退出,掌握Vi编辑器的工作模式,掌握Vi编辑器的基本命令,掌握C/C编译器gcc的使用,掌握Linux下编程的一般方法,并介绍应
2、该达到的专业能力。学生在学习完这一课后应该具备的专业能力:掌握Vi编辑器的使用,使用Vi编辑器编辑文本,使用gcc编译和调试C/C程序,独立完成基本的Linux程序。Vi编辑器的主要内容包括:Vi编辑器的工作模式的启动和退出,Vi编辑器的常用命令,Vi编辑器简介,Vi是可视化界面的简称,可以执行输出、删除、搜索、替换、块操作等多种文本操作。用户可以根据自己的需要定制Vi,这是其他编辑程序所没有的。Vi不是一个排版程序。与WORD或WPS不同,它可以排列字体、格式、段落和其他属性。这只是一个文本编辑程序。Vi是一个全屏文本编辑器,它没有菜单,只有命令。要启动Vi,请在系统提示下输入Vi和要编辑(
3、或创建)的文件名。如果您只输入Vi而不输入文件名,您也可以输入Vi并退出Vi编辑器。要退出虚拟仪器,请在命令模式下键入如图所示的命令。其中,wq和:x是保存出口,q是直接出口。您可以使用:w命令保存文件,然后使用:q退出,或者使用:wq或:x命令退出。如果您不想保存更改的文件,您需要使用:q!命令,该命令不会保存文件并直接退出Vi的工作模式。虚拟仪器有三种基本工作模式:编辑模式、插入模式和命令模式。进入Vi后,首先要进入的是编辑模式。进入编辑模式后,Vi等待编辑命令输入,而不是文本输入,也就是说,输入的字母将被解释为编辑命令。在编辑模式下,输入插入命令I、附加命令a、打开命令o、修改命令c和替
4、换命令s。在插入模式下,用户输入的任何字符都由Vi保存为文件内容并显示在屏幕上。在文本输入过程中(插入模式),如果您想返回到命令模式,只需按下ESC键。在编辑模式下,用户可以通过按“:”键进入命令模式。此时,Vi将在显示窗口的最后一行(通常是屏幕的最后一行)显示“:”作为命令模式的提示,等待用户输入命令。Vi编辑器中的常用命令。在编辑模式下,您可以通过输入表格中显示的命令进入插入模式。与文件相关的命令可以用来在Vi中搜索、替换和删除文件。通过使用下表中的命令,可以执行与字符串相关的操作、复制、删除和移动文本。在Vi编辑器中执行shell命令,使用下表中的命令,可以在shell中编译命令,并解决
5、C程序的项目问题。Linux应用程序显示了两种特殊类型的文件:可执行文件和脚本文件。可执行文件是计算机可以直接运行的程序,相当于。的. exe文件。脚本文件是一组指令,相当于。窗口的蝙蝠文件。在POSIX兼容系统中,C语言编译器被称为c89。Linux试图实现相关的标准。c89、cc和gcc都指向系统的C语言编译器,它通常是GNU C编译器或gcc。Gcc编译器,在为Linux开发应用程序时,大多数都使用c语言,所以几乎每个Linux程序员面临的第一个问题就是如何灵活地使用c编译器。海湾合作委员会不仅非常强大,而且结构非常灵活。最值得称赞的一点是,它可以通过不同的前端模块支持各种语言,如Jav
6、a、Fortran、Pascal、Modula-3和Ada。开放性、自由性和灵活性是Linux的魅力所在,这在GCC中得到了体现,即程序员可以通过它更好地控制整个编译过程。当使用gcc编译程序时,编译过程可细分为四个阶段:预处理、编译、汇编和链接,GCC启动HelloWorld,在当前用户目录中,使用Vi编辑器输入以下代码,并将其保存为hello文件。n);返回0;然后执行以下命令编译并运行这个程序。hellhelloworld结果:Linux编程!从程序员的角度来看,它只需要执行一个gcc命令,但从编译器的角度来看,它需要完成一系列复杂的工作。首先,GCC需要调用预处理器cpp,它负责扩展源
7、文件中定义的宏,并将包含在“#”include语句中的内容插入其中。然后,GCC将调用ccl和as将处理后的源代码编译成目标代码。最后,GCC将调用链接器ld将生成的目标代码链接到一个可执行程序中。第一步是预编译gcc,并且-E参数可以使GCC在预处理后停止编译过程:gcc -E hello.c -o hello.i如果您在这个时候查看hello.i文件的内容,您会发现stdio.h的内容确实被插入到文件中,并且其他应该被预处理的宏定义已经被相应地处理。第二步是将hello.i编译到目标代码中,这可以通过使用-c参数来实现。默认情况下,I文件作为预处理c语言源代码,因此上述命令将自动跳过预处理
8、步骤并开始编译过程,或者您可以使用-x参数让gcc从指定的步骤开始编译。最后一步是将生成的目标文件链接成一个可执行文件:gcc hello.o -o hello,gcc警告提示功能,请看下面的illcode.c程序,这段代码写得不好,仔细检查后不难发现很多错误:# include void main(void)long int var=1;这不是标准的C代码!n);主函数的返回值被声明为无效,但是实际上,int使用GNU语法扩展,也就是说,long long被用来声明64位整数,这不符合ANSI/ISO C语言标准。主函数在终止前没有调用return语句。gcc警告提示功能,当GCC编译不符合
9、ANSI/ISO C语言标准的源代码时,如果添加了-迂腐选项,则在使用扩展语法的地方将生成相应的警告消息:# GCC-迂腐的ill code . C-o ill code . C : In函数main : ill code . C :9: ISO C89不支持长的ill code . C 33608: r Eturn类型的main不是int。应该注意的是,迂腐的编译选项不能保证编译后的程序完全兼容ANSI/ISO C标准,而只能用来帮助Linux程序员越来越接近这个目标。或者换句话说,迂腐的选项可以帮助程序员找到一些不符合ANSI/ISO C标准的代码,但不是全部。事实上,只有那些在ANSI/
10、ISO C语言标准中需要编译器诊断的情况才能被GCC发现和警告。除了迂腐之外,GCC还有其他编译选项,也可以生成有用的警告消息。这些选项大多以-W开始,其中最有价值的是-Wall。使用它可以使GCC生成尽可能多的警告消息:# GCC-Wall ill code . c-o ill code ill . c :8: warning : main的返回类型不是int ill code . c : In function main : ill code . c :933由360 warn :未使用的变量var gcc给出的警告信息不能被视为严格意义上的错误,但它很可能成为错误的庇护所。一个好的Lin
11、ux程序员应该尽量避免警告消息,并保持他的代码简洁、优美和健壮。gcc警告提示功能,在处理警告时,另一个常用的编译选项是-Werror,它要求GCC将所有警告都视为错误,这在使用自动编译工具(如Make等)时非常有用。)。如果您使用-Werror选项编译,GCC将在任何产生警告的地方停止编译,迫使程序员修改他们自己的代码。只有当相应的警告消息被消除时,才有可能将编译过程向前推进。实现如下:gcc-wall-werrorillcode . c-o ill code cc 1:警告被视为错误illcode.c:8:警告: main的返回类型不是i. Ntilcode.c:在函数main : ill
12、 code . c :93:警告:未使用的变量var对于Linux程序员来说,GCC给出的警告信息是非常有价值的,它不仅可以帮助程序员编写更健壮的程序建议在用GCC编译源代码时,始终要带-Wall选项,并逐渐培养成一种习惯,这有助于找出常见的隐式编程错误。项目问题3 c程序调试操作,编译后,我们可以使用以下方法运行:/生成的程序名(其中。/表示当前工作目录)将生成的程序目录添加到系统搜索路径的PATH变量中(我们将在Shell编程课程中介绍它)。如果编译过程中有错误,我们需要调试程序。此时,我们需要使用的工具是gdb,一个程序调试工具。对于Linux程序员来说,gdb (GNU调试器)通过与G
13、CC的合作,为基于Linux的软件开发提供了一个完美的调试环境。默认情况下,GCC在编译时不会在生成的二进制代码中插入调试符号,因为这会增加可执行文件的大小。如果需要在编译时生成调试符号信息,可以使用GCC的-g或-ggdb选项。使用任何调试选项都会显著增加最终二进制文件的大小,同时增加程序执行时的开销。因此,调试选项通常只在软件开发和调试阶段使用。程序调试工具gdb,我们用下面的代码来说明gdb的用法:# include int main(void)int input=0;输入整数:scanf(%d,输入);打印(您输入的整数是%dn,输入);返回0;编译和运行上述代码将产生如下严重的分段错误。c-ocrash。/crash输入一个整数:10分割错误,程序调试工具gdb,为了更快地找出错误,你可以用gdb来跟踪和调试。方法如下:首先,在编译源代码时添加-g选项,程序调试工具gdb,并使用gdb调试程序。我们可以用命令“gdb crash”打开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 七年级上册《观察校园的植物》课件
- 建筑电气安装工程质量保证措施研究
- 面漆涂刷施工工艺流程
- 2026年果蔬配送企业食品安全台账培训计划
- 2026年对于幼儿园的弊端
- 2026 婴幼儿睡眠引导课件
- 2026年幼儿园环境创设美术
- 2026年穿衣服 幼儿园
- 2026年幼儿园游戏教案含
- 2026 儿童好奇心保护课件
- 2025年高考英语复习专项突破:读后续写提分写作(原卷版)
- 第七章 风力发电机组传动系统
- 清单控制价编制与审核方案
- 钱币发展演变与钱币文化
- 2023年副主任医师(副高)-眼科学(副高)考试历年高频考点参考题库带答案
- 贵州医科大学考博英语真题
- 浙江省教师资格认定体检标准
- 四百米障碍完整的教案
- 轻钢龙骨硅酸钙板防火墙施工方案
- 《材料分析测试技术》全套教学课件
- 2021一级消防工程师继续教育考试石油化工类答案
评论
0/150
提交评论