Linux程序设计——技术技巧与项目实践---C程序设计技术--第5章概要.ppt

Linux程序设计——技术技巧与项目实践---C程序设计技术--第5章概要.ppt

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux程序设计——技术技巧与项目实践---C程序设计技术--第5章概要

第五章 C程序设计技术 5.1 管中窥豹学LINUX下的C编程 5.2 GCC编译器应用解析 5.3 GDB调试技术 5.4 MAKE工程管理器 5.6 AUTOTOOLS的应用 5.7 LINUX下的C程序设计实践 5.7 实战技巧 Linux启动模式与定时任务设置 5.1 管中窥豹学习C编程 Linux下的C程序设计首先要确定开发环境,最实用的黄金组合就是vim(emacs)+gcc+gdb。其中vim(emacs)是编辑器,gcc是多能编译器,gdb则是跟踪调试器。Gcc能够编译C、C++和Object C等语言编写的程序,还可以通过不同的前端模块来支持Java、Fortran、Pascal、Modula 3和Ada等各种语言。 gdb是GNU开发组织发布的功能强大的linux下的程序调试工具。在linux平台下做软件,gdb比VC、BCB的图形化调试器更强大。 编程固然可贵 ,但调试价更高,本章旨在两者兼顾,既要熟悉编程方法,又要掌握调试技巧,以保证程序顺利运行。下面指点读者牛刀小试。 Linux下的C源文件的编辑很简单,可以直接使用在其它环境中编辑的*.c文件。Linux下最常用的C代码编辑器是vi或vim,其次是emacs编辑器。第三章已经介绍了vi编辑器,这里直接使用emacs编辑器。Linux下C编程的基本过程是:输入源代码→编译-链接-运行→调试程序。 从最基本的 hello world 程序设计起步 1.输入源代码 $ emacs helloworld.c //进入emacs 编辑器环境 #include stdio.h //如果看不懂这个语句,请看看C语言设计书 int main( ) { printf(“Hello World.\n”); // Emacs环境下按下Tab有自动缩进功能 exit(0); } 完成编辑后,按住Ctrl+X,再按下Ctrl+C,提示是否保存时,按y退出 emacs编辑环境,或直接点菜单保存文件。 2.编译链接和运行程序 $ gcc helloworld.c –o helloworld $ ./helloworld //./用于指明执行程序的路径 Hello World. //程序运行结果。过程如图5.1所示。 这样在linux平台上的简单C程序的开发与运行工作就完成了。 5.2 gcc编译器应用解析 编译器的工作是将源代码翻译成目标代码或机器语言,在现代编译器中,一般分为两个阶段来实现。 第一阶段,编译器的前端接受输入的源代码,经过词法、语法和语义分析等得到源程序的某种中间代码。 第二阶段,编译器的后端将前端处理生成的中间代码进行优化,最终生成在目标机器上可运行的代码。 Gcc提供了30多条警告信息和3个警告级别,有助于增强程序的稳定性和可移植性。此外,gcc还对标准的C和C++语言进行了大量扩展,提高了程序的执行效率,有助于代码优化,减轻编程工作量。Gcc还提供了灵活强大的代码优化功能,可以生成执行效率更高的代码。 5.2.2 gcc编译选项 用Gcc把C语言源码文件生成可执行文件的过程要经历四个相互关联的步骤∶预处理或称预编译Preprocessing、编译Compilation、汇编Assembly和连接Linking。这些过程的执行细节如下: 预处理或预编译,生成 *.i的文件 [预处理器cpp] 将预处理后的文件转换成汇编语言,生成文件 *.s [编译器egcs] 由汇编变为目标代码或机器代码,生成 *.o的文件 [汇编器as] 连接目标代码,生成可执行程序 [链接器ld]。 Gcc 命令的选项非常多,这里只列出针对C编译的常用选项: -o FILE 生成指定的输出文件。用在生成可执行文件时。 -g生成调试信息。GNU 调试器可利用该信息。 -c 只编译并生成目标文件。 -LDIRECTORY 指定额外的函数库搜索路径DIRECTORY。 -lLIBRARY 连接时搜索指定的函数库LIBRARY。 -O0 不进行优化处理。 -O2进一步优化。 -O3比 -O2 更进一步优化,包括 inline 函数。 -w 不生成任何警告信息。 -Wall 生成所有警告信息。 5.2.3 gcc编译过程与游戏编程 为了直观起见,图5.2列出了gcc编译器的工作过程。 如何让gcc为读者服务呢? 只有一步步跟着做,才能理解编译过程的一鳞半爪,只有经过长期的学习,才能深谙编译的真谛。 对于上面列出的的C程序,保存为helloworld.c后,最简单的编译操作是直接在命令行输入: #gcc helloworld.c 在默认情况下,在当前文件夹下就会生成一个名为a

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档