第六章常用开发工具精选文档.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第六章常用开发工具精选文档.ppt》由会员分享,可在线阅读,更多相关《第六章常用开发工具精选文档.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章常用开发工具本讲稿第一页,共四十九页一、开发工具介绍vC/C+、Java、perl、php、python、数据库系统、图形化IDEKDE平台:Kdevelop (c/c+)GNOME平台:Glade builder (c/c+/perl)Magic C+:跨平台Windows/UNIX/LinuxEcplise3.1:(java/c/c+)Netbeans4.1:(java)本讲稿第二页,共四十九页NetBeans本讲稿第三页,共四十九页NetBeans特点Java平台环境Windows环境较慢、Linux环境较快支持Java应用、JavaApplet、Web(Jsp)、企业、嵌入开发易
2、操作、提供标准的Java开发框架多语言本讲稿第四页,共四十九页Ecplise本讲稿第五页,共四十九页Ecplise特点SWT图形界面,OS平台开发环境Windows平台快速插件,绿色软件,多语言功能强大、灵活支持c/c+/java/cobol/uml/ve本讲稿第六页,共四十九页 gcc编译系统的概念和使用gdb程序调试工具的概念和使用程序维护工具make 的概念和使用 二、C语言开发工具本讲稿第七页,共四十九页 6.1 gcc编译系统6.1.1 文件名后缀文件名后缀 文 件 类 型 文件名后缀 文 件 类 型.cC源文件.F .fpp .FPPFORTRAN源文件.i预处理后的C源文件.s汇
3、编程序文件.ii预处理后的C+源文件.S必须预处理的汇编程序文件.mObjective-C源文件.o目标文件.mi预处理后的Objective-C源文件.a静态链接库.h头文件.so动态链接库.C .cc.cp.cpp .c+.cxxC+源文件 本讲稿第八页,共四十九页6.1.2 C语言编译过程 1预处理阶段 预处理是常规编译之前预先进行的工作,故此得名。它读取C语言源文件,对其中以“#”开头的指令(伪指令)和特殊符号进行处理。主要包括文件包含、宏定义和条件编译指令。本讲稿第九页,共四十九页2编译阶段编译程序(Compiler)对预处理之后的输出文件进行词法分析和语法分析,试图找出所有不符合语
4、法规则的部分 3汇编过程汇编过程是汇编程序(Assembler)把汇编语言代码翻译成目标机器代码的过程 4连接阶段连接程序(Linker)要解决外部符号访问地址问题连接模式分为静态连接和动态连接 本讲稿第十页,共四十九页6.1.3 gcc命令行选项在Linux系统中,C/C+程序编译命令是gcc,例如:$gcc f1.c f2.c (针对C语言源程序)执行完成后,生成默认的可执行文件a.out。1预处理选项 C语言预处理程序通常称为cpp,它是宏处理程序,由C编译程序自动调用,在真正的编译过程之前对程序进行转换。几个预处理常用选项:-C -D name -D name=definition -
5、U name -I dir -o file -E 本讲稿第十一页,共四十九页2编译程序选项 gcc编译程序常用选项及其作用 选项格式 功 能-c 只生成目标文件,不进行连接。用于对源文件的分别编译-S 只进行编译,不做汇编,生成汇编代码文件格式,其名与源文件相同,但扩展名为.s-o file 将输出放在文件file中。如果未使用该选项,则可执行文件放在a.out中-g 指示编译程序在目标代码中加入供调试程序gdb使用的附加信息-v 在标准出错输出上显示编译阶段所执行的命令,即编译驱动程序及预处理程序的版本号 本讲稿第十二页,共四十九页3优化程序选项 优化程序常用的选项及其作用 选 项 格 式
6、功 能-O-O1 试图减少代码大小和执行时间,但并不执行需要花费大量编译时间的任何优化-O2 在-O1级别的优化之上,还进行一些额外调整工作除不做循环展开、函数内联和寄存器重新命名外,几乎进行所有可选优化-O3 除了完成所有-O2级别的优化之外,还进行包括循环展开和其他一些与处理器特性相关的优化工作-O0 不执行优化-Os 具有-O2级别的优化,同时并不特别增加代码大小 本讲稿第十三页,共四十九页4连接程序选项 连接程序常用的选项及其功能 选 项 格 式 功 能 object-file-name 不以专用后缀结尾的文件名就认为是目标文件名或库名。连接程序可以根据文件内容来区分目标文件和库-c
7、-S -E 如果使用其中任何一个选项,那么都不运行连接程序,而且目标文件名不应该用做参数-llibrary 连接时搜索由library命名的库。连接程序按照在命令行上给定的顺序搜索和处理库及目标文件。实际的库名是liblibrary,但按默认规则,开头的lib和后缀(.a或.so)可以被省略-static 在支持动态连接的系统中,它强制使用静态链接库,而阻止连接动态库;而在其他系统中不起作用-Ldir 把指定的目录dir加到连接程序搜索库文件的路径表中,即在搜索-l后面列举的库文件时,首先到dir下搜索,找不到再到标准位置下搜索-Bprefix 该选项规定在什么地方查找可执行文件、库文件、包含
8、文件和编译程序本身数据文件-o file 指定连接程序最后生成的可执行文件名称为file,不是默认的a.out 本讲稿第十四页,共四十九页Linux下库文件的命名有一个约定,所有的库名都以lib开头。形如:libx.a 其中,x是指定的库名 以.a(归档,archive)结尾的库是静态库,以.so(共享目标,shared object)结尾的库是动态库 生成静态库的方法实际上可分为两步:将各函数的源文件编译成目标文件 使用ar工具将目标文件收集起来,放到一个归档文件中 本讲稿第十五页,共四十九页 6.2 gdb程序调试工具程序中的错误可按性质分为三种:(1)编译错误,即语法错误。(2)运行错误
9、。(3)逻辑错误。查找程序中的错误,诊断其准确位置,并予以改正,这就是程序调试。程序调试分为人工查错与机器调试。本讲稿第十六页,共四十九页6.2.1 启动gdb和查看内部命令当程序执行过程中忽然中止,屏幕上显示-core dumped消息,然后显示提示符,其中,表示出错原因 为了发挥gdb的全部功能,需要在编译源程序时使用-g选项。如:$gcc -g prog.c -o prog (针对C语言源程序prog.c)$gcc -g program.cpp -o program (针对C+源程序program.cpp)启动gdb的方法有以下几种:(1)直接使用shell命令gdb (2)以一个可执行
10、程序作为gdb的参数 (3)同时以可执行程序和core文件作为gdb的参数 (4)指定一个进程号PID作为gdb的第二个参数一旦启动gdb,就显示gdb提示符:(gdb)并等待用户输入相应的内部命令 本讲稿第十七页,共四十九页启动gdb 本讲稿第十八页,共四十九页breakpoints类中的命令 本讲稿第十九页,共四十九页6.2.2 显示源程序和数据1显示和搜索源程序(1)显示源文件利用list命令可以显示源文件中指定的函数或代码行 list list-list file:num list start,end list file:function(2)模式搜索 forward-search r
11、egexp search regexp reverse-search regexp 本讲稿第二十页,共四十九页2查看运行时数据(1)print命令 一般使用格式是:print /fmt exp当被调试的程序停止时,可以用print命令(简写为p)或同义命令inspect来查看当前程序中运行的数据。(2)gdb所支持的运算符 用&运算符取出变量在内存中的地址。如print&i,print&arrayi type adrexp表示一个数据类型为type、存放地址为adrexp的数据。它是一个与数组有关的双目运算符 file:var 或者 function:var 表示文件file(或函数funct
12、ion)中变量var的值。本讲稿第二十一页,共四十九页(3)输出格式在print /fmt exp命令中,“/”之后的fmt是表示输出格式的字母,它由表示格式的字母和表示数据长度的字母组成。如:表示格式的字母:o x d u t f a i c s表示长度的字母:b w h g(4)whatis命令显示出变量的数据类型(5)x命令可以查看内存地址中数据的值。其使用格式是:x /fmt address(6)display命令可以预先设置一些要显示的表达式。其一般格式是:display /fmt exp 要取消对先前设置的某些表达式的自动显示功能,可以使用以下命令:undisplay disnum
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 常用 开发 工具 精选 文档
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内