版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章Linux下的C语言编程环境,本章的内容,2.1 Linux下的C语言开发环境2.2 Linux下的C语言开发2.3 Linux C程序的开发过程2.4使用编译器gcc 2.5制作工具和使用2.6使用autoconf 2.7使用automake 2.8使用gdb调试程序2.9 IDE工具代码块,2.1 Linux编程介绍,Linux编程可以分为Shell编程和高级语言编程。外壳编程常用的语言包括BASH、TCSH、GAWK、Perl、Tcl和Tk。高级语言包括C、C、Java和其他编译过程:二进制代码-翻译-可执行SHELL编程。使用他们自己的解释器,C源程序需要由gcc编译器编译,以生
2、成可执行的应用程序文件,然后才能运行。2.2 c语言开发环境下的Linux,编辑工具编写源代码(Ubuntu的VI,gedit),编译工具编译和连接,GCC调试工具生成可执行文件GDB,如果运行结果与预期结果不一致,修改源程序,维护工具,如果程序很大,make集成开发环境(ide),2.2 Linux c程序开发过程,2.4使用GCC编译器,gcc(GUN C Compiler)是一个强大而优越的多平台编译器,适合GNU退出, 它可以用来编译c和c源代码,并且换一个地方的目标是非常好的质量和快速的编译速度。 2.4.1在Ubuntu下安装和设置gcc,在Ubuntu版本的LINUX操作系统中,
3、Gcc已经安装,但是因为很少有常用的头文件和库文件,所以有必要安装构建必需的文件包,并在联网状态下使用以下命令。其中,apt-get是一个软件日历命令,可以用来安装、删除和更新系统中的软件包。安装是安装,构建是软件包名称。由于安装软件需要Root权限,系统将提示输入密码,通过GCC v检查GCC版本,使用GCC 2.4.2,通过LS列出文件,将CD BOOK输入文件存储位置,使用GEDIT编辑文件,编辑后保存并关闭编译器,同时使用GCC,使用gcc-o ex2-1 ex2-1.c,编译后添加一个ex2。-O指定输出文件(可执行文件)的名称。/ex2-1运行生成的文件,显示效果,*。c *。什么
4、意思?哪一个是定义文件,哪一个是头文件,Linux可以如下链接文件:与文件1相比,多了一个包含语句F2.h和声明函数F2。在示例2的主函数中,在输出字符串之后,调用F2函数的输出内容。然后,以gcc为链接(编译多个源文件),Gcc在小节中对C语言的处理需要经过四个步骤:1 .预处理,需要分析各种命令,如#define、#include、#if等。Gcc调用cpp程序进行预处理;2.编译,根据输入文件生成装配残差。因为汇编程序通常被立即调用,所以它的输出通常不保存在文件中。Gcc调用ccl进行编译。3.汇编,使用汇编语言作为输入,生成目标文件。o扩展。Gcc要求进行组装工作。4.链接时,每个目标
5、文件都放在可执行文件的适当位置,程序引用的函数也放在可执行文件中(与使用共享库的程序略有不同)。Gcc调用链接程序的ld来完成最终任务。然而,仅仅依靠海湾合作委员会是不够的。对于大型程序来说,工作量会复杂得多。当软件被分成几个子系统,并且这些子系统被分成由预可读文件组成的几个模块时,这些模块需要相互协作。当一个模块被修改时,其他模块也应该保证协调关系。那又怎样?2.5制作工具及其使用,2.5.1制作命令和make file 2.5.2 Makefile规则2.5.3 Makefile变量2.5.4伪目标2.5.5条件语句2.5.6调试制作,使用Makefile编写命令ex2-2:依赖ex2-2
6、.o f2.o编译与gcc的链接,ex2-2.o f2.o生成可执行文件Ex2-2,使用Makef运行Makefile,运行ex2-4案例并重写ex2-3。Objs:表示目标文件用来编译C的命令行,默认的-c Ex2-2依赖文件(引用变量),ex2-2.o f2.o Gcc输出文件是Ex2-2,依赖文件是目标文件gcc $(C) ex2-2.o的意思是:Gcc用于生成,由ex2-2获得。C F2。c、ex2-3、ex2-4和EX2-4。2.6.1创建配置脚本2.6.2编写配置文件2.6.3创建配置文件2.6.4使用autoscan创建配置脚本2.6.5更新配置脚本2.7使用automake,2
7、 . 7 . 1 automake的工作流2.7.2使用automake生成Makefile。由Autoconf生成的配置脚本在运行时与Autoconf无关,也就是说,配置脚本的用户不需要拥有Autoconf。autoconf生成了一个名为configure的脚本,用于检查当前系统是否满足软件正常运行所需的特性。根据检查的信息,生成生成文件。用户只需在软件版本的源目录中执行配置文件,其他工作将自动运行。对于每个使用Autoconf的软件包,Autoconf会从模板文件中生成一个配置脚本,列出软件包需要或可以使用的系统功能。在外壳代码识别并响应一个列出的系统特性后,Autoconf允许多个可能使
8、用(或需要)该特性的软件包共享它。如果你以后因为某种原因需要调整外壳代码,你只需要在一个地方修改它;所有配置脚本将使用更新后的代码自动重新生成。Autoconfig/Automake工具简介,在linux下编程时,有时项目很大而且有很多文件,这时,你需要使用自动创建Makefile的功能。也就是说,使用自动生成工具自动生成生成文件,这给编译器带来了方便。目前,大多数软件包都是用这种方法生成的。使用auto info/automake,需要以下步骤:1 .首先,建立并编写一个c源程序文件;2.使用Autoscan工具生成config.ac文件;3.获取并修改configure . AC 4;5.
9、用aclocal工具生成aclocal.m46.使用autoconf工具生成配置文件。在文件7中,创建Makefile.am文件8,使用AutoMake生成Makefile .在文件9中,运行自动配置设置文件configure,将Makefile.in编程为最终Makefile 10,并运行Make命令进行编译。案例演示:ex2-2就是一个例子。1.使用autoscan:生成configure.scan并将其名称更改为configure.in作为蓝图来更改程序名称。使用gedit修改程序文件,并将目录更改为。/-当前目录。2.获取并修改configure.ac,1 AC _ PREREQQ宏声
10、明本文档所需的autoconf版本,这里是2.69 2 (DULL-PACKAGE-NAME是软件名称,version是软件版本3,AC_CONFIG_SRCDIR用于检测指定的源文件是否存在并确定源目录的有效性。4,AC_CONFIG_HEADER用于生成config.h文件,因此autoheader使用5,AC_PROG_CC用于指定编译器,因此当未指定时,它默认为gcc 6,并且AC_OUTPUT用于设置要生成的配置。如果它是一个生成文件,配置将把检查的结果放入生成文件中,生成一个合适的生成文件。3 .使用本地工具生成本地文件。44 .使用自动确认工具生成配置文件。5 .使用自动头工具生
11、成文件中的配置。6 .创建生成文件。am文件。1 .自动确认选项是设置的自动确认选项。有三个级别供用户选择:外国、gnu gnu、gnits,默认级别是gnu。这里使用了foreign,它只检测必要的文件。2.bin_PROGRAMS定义要生成的可执行文件的名称。如果要生成多个可执行文件,每个文件名都用空格分隔。3.ex2_2_SOURCES被定义为此程序所需的原始文件。如果有多个文件,它们必须用|隔开。7。使用自动生成生成文件。在。使用选项“-添加-丢失”让自动生成自动添加一些必要的脚本文件。8.运行自动配置设置文件,将makefile.in程序配置到最终的makefile。9.测试并运行M
12、ake命令进行编译。然后用gdb运行ex2-2程序、2.8调试程序,第一次gdb 2.8.3的2.8.1基本命令,2.8.3调用gdb,2.8.4选择gdb运行模式。在实际开发过程中,除了正确的语法之外,程序还必须符合设计者的逻辑意图。如果结果不正确,可以通过相应的调试环境跟踪调试。Linux包含一个gdb调试程序,这是一个调试C程序的强大调试器。它使程序员能够观察程序的内部结构和程序运行时的内存使用情况。同时,它提供了一个功能:监视程序中的变量值来设置断点,也就是说,程序停止在指定的代码行上执行代码行。首先,进入终端,打开gdb并按下Q退出,其次,分析案例ex2-6。1.检查ex2-6代码,编译ex2-6.c文件。3.运行结果。4.打开gdb函数,进入调试gcc-o ex2-6 ex2-6.c-g。为了找到程序代码的错误位置,先搜索算法。7.使用中断显示行号为程序设置断点。8.再次运行程序,并以14行中断程序。9.使用观察代码,您可以观察语句操作。对于案例程序,设置String2值,变量1,并观察。10.输入C命令(Continue命令的缩写),第一次进入程序,为空,为世界!下面的空格,11。寻找错误点(1)到目前为止,它显示分配是H,12。寻找错误
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 减脂期清蒸鱼课件
- 2026 减脂期粉丝煲课件
- 26年远程影像评估流程
- 医学26年:脊髓疾病诊断思路 查房课件
- 2026 减脂期椰子课件
- 诺如病毒患儿护理:休息与活动建议
- 胎盘早剥的护理实践案例
- 诺如病毒患儿护理:避免交叉感染措施
- 非奇异对称矩阵合同性质与数值计算合同协议合同二篇
- 面瘫后遗症期的护理策略与技巧
- CAESAR-II简易操作手册
- 病案首页质量控制与管理实施方案
- 咯血临床思维及诊断治疗课件
- 科学实验科创课件STEM教育编程065机械鱼
- 广州佰仕德材料科技有限公司年产1000吨有机硅电子密封胶和1050吨电子灌封胶建设项目环境影响报告表
- 爱情片《百万英镑》台词-中英文对照
- 先导式减压阀的设计方案
- YS/T 429.1-2000铝幕墙板 板基
- 第四章 AP1000反应堆结构设计(杜圣华)
- 汕头市南澳岛演示文稿课件
- 西安交大流体力学题与答案
评论
0/150
提交评论