Linux 环境下的C语言编程.ppt

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

Linux 环境下的 C语言编程 第一部分: Linux下的C编程实战之开发平台搭建 准备工作 建议在PC内存足够大的情况下,不要直接安装Linux操作系统,最好把它安装在运行VMWare虚拟机软件的Windows平台上,如下图: 1. Vim和Emacs编辑器 在Linux平台下,可用任意一个文本编辑工具编辑源代码。 Vim(vi improve)是Linux下功能强大的编辑器,是由UNIX系统下的传统文本编辑器vi发展而来,是vi的一个增强版本,有彩色和高亮等特性,对编程有很大帮助。主菜单-编程-vi Improved命令来运行x-windows下的vim。 Emacs即Editor MACroS(编辑器宏)的缩写,是一种强大的文本编辑器,在程序员和其他以技术工作为主的计算机用户中广受欢迎。 使用vim编辑helloworld程序 使用emacs编辑helloworld程序 2.GCC编译器 GCC是Linux平台下最重要的开发工具,它是GNU的C和C++编译器,其基本用法为: gcc [options] [filenames] 该命令按编译选项(参数options)指定的操作对给定的文件进行编译处理。 编译一输出“Hello World”的程序: main() { printf(Hello World\n); } 2.GCC编译器 最简单的编译方法是不指定任何编译选项,它会为目标程序生成默认的文件名 a.out gcc helloworld.c o选项:编译来为将产生的可执行文件指定一个文件名。例如,将上述名为helloworld.c的C程序编译为名叫helloworld的可执行文件,输入如下命令: gcc -o helloworld helloworld.c    2.GCC编译器-常用选项 c选项:告诉GCC仅把源代码(.c文件)编译为目标代码(.o文件)而跳过汇编和连接的步骤;它能使编译多个C程序时的速度更快且容易管理。例如用户将已编辑好的test.c文件编译成名为test.o的目标文件。可以使用命令 gcc -c test.c s选项:告诉GCC 在为 C代码产生了汇编语言文件后停止编译。GCC 产生的汇编语言文件的缺省扩展名是.s。将生成helloworld.c的汇编代码,使用的是ATT汇编。用emacs打开汇编代码如下图。 用emacs打开的Hello.c的汇编代码 2.GCC编译器-常用选项 E选项:指示编译器仅对输入文件进行预处理,但不汇编和连接 O(-O1)选项:告诉GCC对源代码进行基本优化从而使得程序执行地更快;而-O2选项告诉GCC产生尽可能小和尽可能快的代码。使用-O2选项编译的速度比使用-O时慢,但产生的代码执行速度会更快。 Wall 选项:显示附加的警告信息。例如在上述程序中去掉 return 0;语句,之后重新编译 gcc –Wall –o hello hello.c 将得到的警告信息:hello.c : 5:warning:control reaches end of non-void function 3. GDB 调试器 GCC用于编译程序,而Linux的另一个GNU工具gdb则用于调试程序。gdb是一个用来调试C和C++程序的强力调试器,通过它进行一系列调试工作。 gdb主要提供一下功能: 监视程序中变量的值得变化 设置断点,使程序在指定的代码上暂停执行,便于观察 单步执行代码 分析崩溃程序产生的core文件 3. GDB 调试器 ★gdb最常用的命令如下 file:装入想要调试的可执行文件。 kill:终止正在调试的程序。 list:列表显示源代码。 next:执行一行源代码但不进入函数内部。 step:执行一行源代码而且进入函数内部。 run:执行当前被调试的程序 quit:终止gdb watch:监视一个变量的值 break:在代码里设置断点,程序执行到这里时挂起 3. GDB 调试器 举例说明怎样用GDB调试一个求0+1+2+3+…+99的程序: /* Filename:sum.c */ main() { int i, sum; sum = 0; for (i = 0; i 100; i++) { sum + = i; } printf(the sum of 1+2+...+ is %d, sum); } 3. GDB 调试器 3. GDB 调试器 执行如下命令编译sum.c(加-g选项产生debug信息): gcc –

文档评论(0)

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

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

1亿VIP精品文档

相关文档