网站大量收购闲置独家精品文档,联系QQ:2885784924

Linux第6章补充材料.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux操作系统 第6章补充材料 Linux下编程与系统调用 Linux环境下的编程环境-Gcc Linux环境下C语言程序开发过程 用编辑程序(vi/vim、Emacs)编辑源程序,生成源程序文件; 使用编译软件Gcc对源程序文件进行编译,可生成执行文件; 使用GDB调试器软件对程序进行调试; 生成最终可执行程序。 实际上,可使用Linux环境下提供的可视化集成开发环境进行程序开发,如基于QT库的KDevelop、基于GTK库的Anjuta、Kylix等开发环境。 Gcc编译器的使用方法 Gcc可以编译C、C++以及Object C的源程序。其编译过程分为四个阶段: 预处理 编译 汇编 连接 可以在任意一个编译阶段暂停编译过程,并检查相应的输出信息。 Gcc 应用实例:编写并运行一个简单C语言程序,输出“Hello,Word!” /* test.c */ #include stdio.h int main( ) { printf(“Hello,Word!\n”); return 0; } 运行该程序的过程: (1)用vi编辑源程序文件hello.c存放在当前目录上; (2)运行Gcc编译程序hello.c,生成可执行文件hello: gcc hello.c –o hello (3)执行可执行文件test ./hello 可看到显示结果 Hello, Word! Gcc的编译选项:有时侯,我们不直接产生可执行程序文件,而只是进行语法检查,此时可使用编译选项。如上例,我们可用以下两个步骤进行: gcc –c hello.c 进行编译,产生目标代码 gcc –o hello hello.o 产生可执行文件 可用的编译选项: -c 生成目标文件 -o 生成可执行文件 -g 在可执行程序中包含标准调试信息 -static 链接静态库,即执行静态连接 -ggdb 在可执行程序中包含只有GNU debugger才识别的调试信息 -O 优化编译过的代码 -On 指定代码的优化级别。一般使用O2就能满足 -w 表示关闭所有的警告。 -werror 表示把警告转换成错误,这样会在警告发生时停止编译。 -L 指定连接库所在目录 -l 指定连接库文件 库依赖 用-I选项在头文件有哪些信誉好的足球投注网站路径中添加新目录 例子: gcc david.c –I /home/david/include –o david 用-L选项向gcc的库文件有哪些信誉好的足球投注网站路径中添加新目录 用-l选项指定连接库,Linux下的库文件以lib三字母开始,在-l选项中省略lib。 例子: gcc david.c –L /home/david/lib –ldavid –o david GDB调试器的使用方法 GNU控制台调试器GDB可以识别Shell提示符下的各种命令,并在控制台上显示输出。 如何运行GDB,以调试下述程序为例: #include stdio.h c=a*b; int main( ) else { c=a/b; int a,b,c; printf(“c=%d\n”,c); a=3; b=-2; return 0; if (a+b0) } GDB调试器的使用方法(续) 用vi编辑源程序文件test.c 编译test.c,使用选项-ggdb(包含调试信息) gcc test.c –o test –ggdb (3)使用GDB调试程序,使用命令 gdb test (4)GDB调试器控制台下输入调试命令,例如 (gdb)run 运行程序 (gbd)continue 继续运行完程序 (gdb)next 单步执行一条语句 (gdb)display 显示变量值 (gdb)quit 退出GDB,也可以按Ctrl+D (gdb)break 设置断点 以下是调试该程序的过程 Linux文件管理系统调用程序设计 Linux内核为开发人员提供了一组用于实现各种功能的接口,这种接口称为系统调用。用户程序通过系统调用命令或函数实现系统调用。从使用方法上看,系统调用与普通函数调用非常相似,但本质不同。系统调用是由操作系统核心提供,运行于核心态;而普通函数调用由函数库或用户自己提供,运行于用户态。 使用命令 man 2 syscalls 可以查看系统调用的详细资料。 [例1]系统调用time应用 #include stdio

文档评论(0)

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

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

1亿VIP精品文档

相关文档