1、第9章 使用Eclipse进行C/C+开发第1页,共56页。本章内容本章内容9.1 安装安装MinGW9.2 第一个第一个C/C+项目项目9.3 使用使用Eclipse重构功能重构功能9.4 使用搜索功能使用搜索功能第2页,共56页。9.1 安装MinGW 为了能够使用Eclipse CDT编译且运行C和C+程序,必须要安装一个C/C+编译器。MinGW(Minimalist GNU on Windows)是指用来生成纯粹的Win32可执行文件的编译环境,它是以GNU为基础的开发C/C+项目的工具集,能够提供C/C+所需的头文件和库文件。使用MinGW,用户生成本地的Windows程序时不需要
2、C/C+第三方运行时库。MinGW下载地址:http:/第3页,共56页。安装步骤:双击在线安装文件“MinGW-5.1.4.exe”,单击“Next”按钮,选择下载并自动安装“Download and Install”,然后单击“Next”按钮,并根据提示一步一步完成安装。第4页,共56页。单击单击“I Agree”按钮按钮第5页,共56页。选择选择“Current”,单击,单击“Next”按钮按钮第6页,共56页。选择选择“Full”,单击,单击“Next”按钮按钮第7页,共56页。等下载完毕,单击等下载完毕,单击“Next”按钮按钮第8页,共56页。第9页,共56页。为了不指明完整路径的
3、情况下,系统能够认识MinGW,需要设置系统环境变量。用鼠标单击“我的电脑”,选择“属性”,在对话框中,单击“高级”选项卡中“环境变量”按钮打开对话框,在“系统变量”对话框中找到Path变量,单击“编辑”,将MinGW安装路径下的文件夹输入到变量值中即可以完成环境变量设置。第10页,共56页。确认确认MinGW的安装和环境变量设置是否生效的安装和环境变量设置是否生效 1、进入命令提示符状态:方法1)选择“开始”-“运行”,在对话框中输入cmd;方法2)选择“所有程序”-“附件”-“命令提示符”。2、在“命令提示符”中,输入 gcc -v,出现下图信息结果,则安装与设置正确。第11页,共56页。
4、9.2 第一个C/C+项目 在Eclipse中,所有的程序都是以项目为单位。在编写程序前需要新建C/C+项目。操作步骤如下:单击菜单栏中的文件(File)菜单,选择新建(New)子菜单下的项目(Project)选项。在弹出对话框中选择向导窗口(Select a wizard)。以C语言为例,在对话框中打开C/C+文件夹,选择 C Project后单击“Next”按钮进入到下一步。9.2.1 新建新建C/C+项目项目第12页,共56页。在项目名称(Project name)标签中输入:HelloWorld;在项目类型(Project type)标签中打开文件夹Executable文件夹,选择 H
5、ello World ANSI C Project;在工具箱()标签中选择MinGW GCC,单击“Next”按钮进入到下一步。第13页,共56页。在Basic Settings窗口中可以设置源代码的注释部分内容,分别在作者、版权声明等标签中输入相应的内容后,单击“Next”按钮进入到下一步。第14页,共56页。在Select Configuration窗口中可以选择调试和发布文件夹以及高级设计,保持默认设置后,单击“Finish”按钮即可以新建C Project。在这个项目中将会保存编写的源代码文件和配置文件。第15页,共56页。9.2.2 新建新建Source Folder 用鼠标右键单击
6、资源浏览器中的HelloWorld项目,在弹出的菜单中选择新建(New)子菜单里单击源文件夹(Source Folder)选项。第16页,共56页。在弹出的New Source Folder窗口中输入文件夹名称,单击“Finish”按钮即可以完成。第17页,共56页。9.2.3 新建新建C+Class 在src文件夹中新建源代码文件。用鼠标右键单击src文件夹,在弹出菜单中选择新建(New)子菜单里的类(Class)选项。在类名称(Class Name)标签中输入类名称后单击“Finish”按钮即可以完成。第18页,共56页。第19页,共56页。9.2.4 编译编译C程序程序 编辑好源代码后,
7、接下来需要将.c文件编译为可以运行的.exe文件。在资源管理器中,用鼠标右键单击HelloWorld项目,弹出菜单,选择“Build Configurations”-“Build”-“All”。如果程序有语法错误,此时编辑器中该代码行显示“?”。第20页,共56页。在资源管理器中,用鼠标右键单击HelloWorld项目,弹出菜单,选择“Run As。如果程序有语法错误,此时编辑器中该代码行显示“X”。第21页,共56页。9.2.5 运行运行C程序程序 编译成功后将在资源管理器中看到Release文件夹,该文件包含了被编译成功的可执行文件。第22页,共56页。在资源管理器中,用鼠标右键单击Hel
8、loWorld项目,弹出菜单,在运行方式(Run As)子菜单中选择运行设置(Run Configurations)。在Create,manage,and run configurations窗口中,单击新建运行配置(New launch configuration)按钮新建一个运行配置。第23页,共56页。进入新建窗口后,在“Build Configuration”选项中选择Release,并单击“Search Project”按钮进行设置。第24页,共56页。在弹出Program Selection窗口中,选择 x86le-/HelloWorld/Release/HelloWorld.ex
9、e后,并单击“OK”按钮。第25页,共56页。全部设置完毕后,并单击“Run”按钮。运行结果如下图:第26页,共56页。例1:输入两个数,判断其大小并输出较大的那个数。步骤:1)新建MaxNum项目(操作步骤与前面新建HelloWorld 项目类似);2)在编辑器中输入代码;3)编译MaxNum.c,并运行编译文件。第27页,共56页。例2:有1、2、3、4、5五个数,能组成多少个互不相同且无重复数字的三位数?分别是多少?请输出这些三位数判断其大小并输出较大的那个数。第28页,共56页。9.2.6 使用浏览功能使用浏览功能 使用浏览功能可以从多个角度快速查看并定位到程序中的各个元素,包括代码的
10、层次结构、调用关系、继承关系等。1 1、打开变量声明、打开变量声明。将光标定位到编辑器中相应的变量位置(如result变量),单击菜单栏中的浏览(Navigate)菜单,选择打开变量声明(Open Declaration)选项,也可以使用:F3快捷键。第29页,共56页。Eclipse自动将编辑器中的光标定位到声明(result)变量的位置。Eclipse还提供变量底色标注。当光标定位到某个变量时,把该变量的各个实例用灰色标注。明 第30页,共56页。将光标定位到编辑器中相应的变量位置(如FILE类型),单击菜单栏中的浏览(Navigate)菜单,选择打开类型层次结构(Open Type Hi
11、erarchy)选项,也可以使用:F4快捷键。第31页,共56页。Eclipse将显示类型层次结构(Open Type Hierarchy)视图,如下图所示。左侧部分是该数据类型(FILE类型)的继承结构,右侧则是该数据类型所包含的属性与方法。第32页,共56页。将光标定位到编辑器中相应的函数位置(如add()函数),单击菜单栏中的浏览(Navigate)菜单,选择打开调用层次结构(Open Call Hierarchy)选项,也可以使用:Ctrl+Alt+H快捷键。第33页,共56页。Eclipse将显示调用层次结构(Call Hierarchy)视图,如下图所示。在调用层次结构中,可以ad
12、d()函数在main()函数中被调用。第34页,共56页。单击菜单栏中的浏览(Navigate)菜单,选择打开文件包含浏览器(Open Include Browse)视图,也可以使用:Ctrl+Alt+I快捷键。第35页,共56页。Eclipse自动显示文件包含浏览器(Include Browse)视图,如下图所示。该视图可以看到该程序中所包含的全部头文件(.h文件)。第36页,共56页。Eclipse将命名空间(Namespace)、类(Class)、结构(Struct)、类型定义符(Typedef)、函数(Function)、变量(Variable)等定义为元素。单击菜单栏中的浏览(Nav
13、igate)菜单,选择打开元素(Open Element)选项,也可以使用:Ctrl+Shift+T快捷键。第37页,共56页。在弹出的Open Element窗口中输入:File,Eclipse将使用模糊查找方式找到包含File关键字的所有元素,如下图所示。我们打开FILE,并选择文件路径,单击“OK”按钮。第38页,共56页。Eclipse在新编辑器中打开如下图所示,文件路径(global)FILE D:/MinGW/include/stdio.h)所指向的文件,并将光标定位到类型定义符号FILE位置。第39页,共56页。9.3 使用Eclipse重构功能9.3.1 重命名变量重命名变量
14、Eclipse重构功能,使用户可以在不影响程序行为的情况下进行系统范围内的代码更改。Eclipse重构中的重命名功能重命名功能解决了变量、类、函数等重命名的所有问题。例:将例:将HelloWorld.cHelloWorld.c中变量中变量a a改为改为b b。步骤:步骤:1 1)将变量)将变量a a选中,此时变量选中,此时变量 a a的背景变为灰色的背景变为灰色;2 2)单击菜单栏中的重构()单击菜单栏中的重构(RefactorRefactor)菜单,选择重命名()菜单,选择重命名(RenameRename)选项弹出对话框,填写新的变量名称)选项弹出对话框,填写新的变量名称b b,单击,单击“
15、OKOK”按钮。按钮。第40页,共56页。如果单击重命名(如果单击重命名(RenameRename)对话框中)对话框中“PreViewPreView”按钮按钮,可以在修改前预览重命名的对比结果。,可以在修改前预览重命名的对比结果。第41页,共56页。如果修改引起代码冲突,如果修改引起代码冲突,Eclipse Eclipse会弹出会弹出冲突情况窗口,可以选择冲突情况窗口,可以选择继续应用修改继续应用修改,或,或取消修改操作取消修改操作。第42页,共56页。9.3.29.3.2 抽取方法抽取方法 在面向对象的程序设计思想中,在面向对象的程序设计思想中,组件和方法组件和方法的的重用重用是一个很是一个
16、很重要的概念。将程序中出现重要的概念。将程序中出现多次的代码段多次的代码段抽取出来形成方法,可抽取出来形成方法,可以大大以大大减少代码减少代码的长度并增加程序的长度并增加程序可读性和易维护性可读性和易维护性,同时使得方,同时使得方法的调用变得清晰和简单。法的调用变得清晰和简单。例:以下面程序为例,讲解如何抽取方法。例:以下面程序为例,讲解如何抽取方法。第43页,共56页。将程序的第将程序的第1818行代码行代码“result=result+iresult=result+i”抽取为通用方法抽取为通用方法addadd,使得之后程序都能用使得之后程序都能用addadd方法执行加法运算方法执行加法运算
17、。操作步骤如下:选中操作步骤如下:选中“result+iresult+i”,用鼠标右键单击选中部分,在弹出,用鼠标右键单击选中部分,在弹出的菜单中选择重构(的菜单中选择重构(RefactorRefactor)子菜单下的抽取方法()子菜单下的抽取方法(Extract FunctionExtract Function)。)。在弹出的窗口中输入方法名在弹出的窗口中输入方法名addadd,可以看到在返回值中出现了两,可以看到在返回值中出现了两行,分别对应变量行,分别对应变量resultresult和和i i,不用修改,单击,不用修改,单击“NextNext”进入下一步。进入下一步。第44页,共56页。
18、重构前后的代码对比如下图所示:重构前后的代码对比如下图所示:第45页,共56页。9.3.39.3.3 抽取常量抽取常量 当程序需要对同一数字或字符串多次调用时,每当出现这种情况我当程序需要对同一数字或字符串多次调用时,每当出现这种情况我们应当用常量替换这个数字或字符串,以增加程序的可读性和易修改们应当用常量替换这个数字或字符串,以增加程序的可读性和易修改行。行。抽取常量的本质抽取常量的本质是将程序中的数字、字符数字等定义为常量,是将程序中的数字、字符数字等定义为常量,使得对于常量的调用和修改使得对于常量的调用和修改变得更简单变得更简单。例:以下面程序为例,讲解如何抽取常量。例:以下面程序为例,
19、讲解如何抽取常量。第46页,共56页。我们将数字我们将数字“1010”用常量用常量MAX_NUMMAX_NUM替换。操作步骤如下:选中替换。操作步骤如下:选中“1010”,用鼠标右键单击选中部分,在弹出的菜单中选择重构(,用鼠标右键单击选中部分,在弹出的菜单中选择重构(RefactorRefactor)子菜单下的抽取方法()子菜单下的抽取方法(Extract ConstantExtract Constant)。)。在弹出的窗口中输入常在弹出的窗口中输入常量名称量名称MAX_NUM MAX_NUM,单击,单击“NextNext”进入下一步。进入下一步。第47页,共56页。重命名常量前后对比如下图
20、所示:重命名常量前后对比如下图所示:当需要修改当需要修改MAX_NUMMAX_NUM时,只需在定义部时,只需在定义部分进行修改而不必进入程序中逐个更改该常量分进行修改而不必进入程序中逐个更改该常量的值。的值。第48页,共56页。9.4 使用搜索功能9.4.19.4.1 使用查找使用查找/替换方法替换方法 Eclipse Eclipse提供最基本的查找,单击菜单栏中的编辑提供最基本的查找,单击菜单栏中的编辑(EditEdit)菜单,选择查找)菜单,选择查找/替换(替换(Find/ReplaceFind/Replace)选项,弹)选项,弹出搜索窗口。也可以使用出搜索窗口。也可以使用”Ctrl+F”
21、Ctrl+F”快捷键打开窗口快捷键打开窗口。第49页,共56页。9.4.2 9.4.2 使用使用SearchSearch菜单进行搜索菜单进行搜索 在在Eclipse CDTEclipse CDT特有的特有的SearchSearch功能中,可以执行文件、任功能中,可以执行文件、任务和务和C/C+C/C+搜索功能。这些搜索是针对代码结构进行的,因搜索功能。这些搜索是针对代码结构进行的,因此搜索速度更快,效率更高。此搜索速度更快,效率更高。1 1、打开、打开SearchSearch对话框对话框 单击菜单栏中的单击菜单栏中的SearchSearch菜单,选择菜单,选择SearchSearch选项可以打
22、开选项可以打开搜索对话框。搜索对话框。File SearchFile Search、Task SearchTask Search、C/C+SearchC/C+Search可以可以分别执行:文件搜索、任务和分别执行:文件搜索、任务和C/C+C/C+搜索功能。搜索功能。第50页,共56页。2 2、执行、执行C/C+C/C+搜索搜索 在在C/C+SearchC/C+Search选项卡中,输入需要搜索的字段。在选项卡中,输入需要搜索的字段。在Search ForSearch For选项中,可以指定工作台只搜索程序中的某些特定选项中,可以指定工作台只搜索程序中的某些特定部分,如方法、变量、函数等,利用它
23、可以设定搜索范围,部分,如方法、变量、函数等,利用它可以设定搜索范围,默认设置为搜索全部程序部分默认设置为搜索全部程序部分;在;在Limit ToLimit To选项中,可以选项中,可以选择限定搜索区域。设置完成后,单击选择限定搜索区域。设置完成后,单击“SearchSearch”按钮即按钮即可进行搜索。可进行搜索。第51页,共56页。3 3、执行文件搜索、执行文件搜索 在在File SearchFile Search选项卡中,在选项卡中,在Containing textContaining text选项中输入需选项中输入需要搜索的内容,如要搜索的内容,如charlcharl;在;在File
24、name patternsFile name patterns选项中,可以选项中,可以选择仅在特定文件类型的文件中进行搜索,如选择仅在特定文件类型的文件中进行搜索,如.c.c文件。文件。利用它可以设定搜索范围,利用它可以设定搜索范围,默认设置为搜索全部程序部分默认设置为搜索全部程序部分;设置完成后,单击;设置完成后,单击“SearchSearch”按钮即可进行搜索。按钮即可进行搜索。第52页,共56页。4 4、执行任务搜索、执行任务搜索 第53页,共56页。9.4.39.4.3 显示搜索结果显示搜索结果 搜索完成后搜索完成后EclipseEclipse将会在搜索(将会在搜索(SearchSea
25、rch)视图中显示与本次搜索相关的搜索结果,搜索视视图中显示与本次搜索相关的搜索结果,搜索视图可以由菜单栏上的窗口(图可以由菜单栏上的窗口(WindowWindow)菜单中调)菜单中调出出 例:搜索例:搜索HelloHello。第54页,共56页。使用视图工具栏的使用视图工具栏的Show Next MatchShow Next Match、Show Show Previous Match Previous Match 按钮可以查看该次搜索的每个搜索按钮可以查看该次搜索的每个搜索结果。双击视图中搜索结果,结果。双击视图中搜索结果,EclipseEclipse将会激活编将会激活编辑器,并在编辑器中将光标定位到该搜索结果的辑器,并在编辑器中将光标定位到该搜索结果的位置。位置。第55页,共56页。小结小结1、使用Eclipse进行C/C+开发的方法。2、使用Eclipse重构功能。3、使用Eclipse搜索功能。第56页,共56页。