
实战KDevelop进行Linux软件开发 2009-02 V0.1 实战KDevelop进行Linux软件开发 陈 浩 2009-02 (Ver. 0.1) MSN: [email protected] Linux开发并不高深,我们需要一个新的角度进行近距离接触! 欢迎指正! Horky ([email protected]) 1. 实战KDevelop进行Linux软件开发 2009-02 V0.1 目录 开始之前.................................................................................................................................................................3 第1章 认识KDevelop.............................................................................................................................................4 1.1简单起步 ........................................................................................................................................................4 1.1.1 一个实例 – Hello, Kdevelop! ..............................................................................................................4 1.1.2 KDevelop的项目组织 ............................................................................................................................6 1.1.3 KDevelop的布局 ....................................................................................................................................8 1.1.4 集成调试环境......................................................................................................................................10 1.2配置KDevelop ..............................................................................................................................................11 第2章 应用程序开发 ...........................................................................................................................................14 2.1 GTK+应用程序开发 ..................................................................................................................................14 2.1.1 Glade 2.x的应用程序开发....................................................................................................................14 2.1.2 Glade 3.x 的应用程序开发 (Libglade + Glade 3.x) ............................................................................20 第3章 动态库与静态库 .......................................................................................................................................23 3.1 例程 静态库的创建与使用 ......................................................................................................................23 3.2 动态库 ........................................................................................................................................................28 3.3 库的调试 ....................................................................................................................................................32 附录1. GDB使用介绍...........................................................................................................................................35 Horky ([email protected]) 2. 实战KDevelop进行Linux软件开发 2009-02 V0.1 开始之前 很多高手在Linux下很喜欢使用Makefile进行开发,但事实上并不是所有人都适合使用Makefile,尤其是初入 Linux世界的人。 许多年来,Linux很难得以普及,就是因为使用及开发的难度被无端地夸大了,许多高手都以 能运用复杂的指令为荣,而不愿意轻意妥协于那些更易于掌握的工具。而我认为不要在意用什么开发,只要关 注你要开发什么!所以至于工具,自然由你决定。KDevelop也是一个选择,至少它可以使开发者摆脱Makefile体 系的困扰! 软件开发要以产品论英雄,任何工具都是熟能生巧罢了,结果也都是殊途同归,没什么复杂的。 先介绍一下KDevelop吧。KDevelop和Anjuta是Linux下两个最为重要的免费集成开发环境,其中KDevelop最 为稳定。虽然KDevelop从名称上看较接近于KDE开发,但事实上它可以支持诸多Linux应用程序开发,如GTK+ 应用程序开发。它也可以支持多种语言,而不仅限于C/C++。 它的安装也是相当简单,所有主流的Linux发行 版都会在安装盘中附带KDevelop,所以利用本身的包管理系统就可以安装KDevelop。当然对于使用LiveCD安装的 Ubuntu,自然是需要从网上下载安装了。安装简单,我们略去不谈,看看界面先: 这是一个GTK+应用程序的项目界面,并不复杂。见过面后,我们就开始一步步来深入掌握这个开发利 器吧! Horky ([email protected]) 3. 实战KDevelop进行Linux软件开发 2009-02 V0.1 第1章 认识KDevelop 本章将带你使用KDevelop建立一个简单的工程,让你有一个基本的认识。会涉及诸如创建项目,编译 与调试等重点。本文所有的示例及图片均在Ubuntu 8.04/Debian 4.0及openSUSE 11下使用 KDevelop完成。 1.1简单起步 我将以简单为主要原则来展开KDevelop的使用,所以建个项目最为实际。没办法,还是挑大家最熟 的Hello,World程序了,这样大家就只要关心KDevelop的使用了。 1.1.1 一个实例 – Hello, Kdevelop! 下面为项目创建过程,如果你已经熟悉这个过程,这一节就可以跳过了。 1. 通过Programming中KDevelop菜单进入KDevelop,这里选择KDevelop:C/C++,至于其它项 目,稍后再谈. 2. 选择菜单Project->New Project来创建一个新的项目. 3. 在新的窗口中,勾选"Show all project templates”(否则你只能看到C++),然后设定以下项目: All Projects: Simple Hellow world program Application name: HelloKDevelop Location:选择项目所在的目录 Horky ([email protected]) 4. 实战KDevelop进行Linux软件开发 2009-02 V0.1 点"Next”进入下一步。 4. 在新的界面里设定项目作者和邮箱地址如下: 然 后 点 " N e x t ” , 进 入 到 下 一 面 ,以后的各项也都请按Next进行下去,直至点Finish完成项目的创建。 5. 现在你就可以编译这个程序了,试一下按F8,或者菜单"Build”-> “Build Project”, 然后 在下面的菜单中点选"Run Them”。然后就等待一下吧。 6. 经过一系列的动作后,你就可以在KDevelop下面的信息栏中看到如下的信息: Horky ([email protected]) 5. 实战KDevelop进行Linux软件开发 2009-02 V0.1 编绎成功了,可是还没有完成。现在把hellokdevelop.c中的"Hello,world!”改成KDevelop吧 ,这个很简单了。存盘后,再次执行一下第5步的编译! 7. 现在可以看看我们的成果了,按一下F9或者是菜单"Debug”->”Start”,程序就会被执行了 ,然在KDevelop下的Application栏里就会出现程序的输出结果,如下: 这就是我们第一个Kdevelop工程了。 1.1.2 KDevelop的项目组织 我们来看看刚刚建的项目生成了哪些目录和文件: HelloKDevelop [autom4te.cache] Autoconf所创建的目录,不属于KDevelop所创建的目录。 [debug] Debug模式所生成的目录,包括中间代码及可执行代码。 [optimized] Optimized模式所生成的目录,同样包括中间代码及可执行代码。 [src] 源代码目录。 [templates] 包含了基本的模板定义信息。 其中的debug和optimized等同于Visual Studio中的Debug和Release模式。 在KDevelop中一个项目可以分为不同的子项目(sub-project),不同的子项目(sub-project)会包含 不同的目标程序(Target),这是项目组织的不同。而每个项目都会有两种基本编译配置:debug和 optimized,你还可以按需要添加你自己的配置。依次看一下它们的位置: 配置(Configuration): Horky ([email protected]) 6. 实战KDevelop进行Linux软件开发 2009-02 V0.1 在Project->Build Configuration可以选择不同的配置。若要编辑不同配置时可以通过Project->Project Options进行配置: 如果需要添加新的配置,只要给Configuration起一个不同的名字,右侧的Add就会可用,允许你添 加新的配置。后面我们还会具体用到配置的编辑功能。 子项目(Sub-project)及目标程序(Target): Horky ([email protected]) 7. 实战KDevelop进行Linux软件开发 2009-02 V0.1 上图中项目需要点右侧的"Automake Manager”来打开或关闭的。其中上半部分为子项目(sub- project),下半部分则为目标程序(Target)。后面我们也会有例子来讲述sub-project及Target的运用。 1.1.3 KDevelop的布局 我们再来详细认识一下KDevelop的布局,主要如下图: 其 中 的 工 具 栏 包 括 了 一 些 常 用 的 功 能 , 还 是 要 留意一下: A:Main Toolbar (主工具栏) Horky ([email protected]) 8. 实战KDevelop进行Linux软件开发 2009-02 V0.1 依次分别为: Open Project: 打开一个现有的项目 Goto Last Edit Position:跳转到上次编辑位置 Back: 退回到上次停留的位置,不一定是编辑操作位置 Forward:跳转到后一次的停留的位置。以上三个在编辑时用于代码间跳转。 New (File):创新一个新文件 Save: 存盘 Save as: 另存为 Print:打印 Undo:恢复 Redo:重做上一次动作 Cut:剪切 Copy:复制 Paste:贴上 Find:查找 Full Screen mode:全屏模式 Enlarge Font:放大字体 Shrink Font:缩小字体 What's This:这是什么?用于帮助你了解具体每个项目的功能。 B:Build Toolbar (编译工具栏) 依次分别为: Build project: 编译项目 Build Active Target: 编译活动目标。当有多个Target时,可以右击某个Target使其变为Active Target. Execute the program:执行目标程序 Stop:停止或中断 C:Browser Toolbar(浏览工具栏) 依次分别为: Generate a new class: 生成一个类,可以选择是否创建头文件和源文件。 Sync ClassView: 同步当前的ClassView信息. Function Navigation: 显示当前单元的函数列表. D:Debugger Toolbar (调试工具栏) 依次分别为: Start in debugger (F9): 在调试器中执行程序,也是开始Deubg。 Restart the program: 在调试过程中重新执行程序。 Step Over: 跳过执行,不进入函数内部。 Step Over: 进入执行,会进入函数内部。 Step out of the current function: 跳出当前函数。 Debugger Viewer: 切换到调试视图界面。 Horky ([email protected]) 9. 实战KDevelop进行Linux软件开发 2009-02 V0.1 E: Session Toolbar (Session工具栏) 依次分别为: New session Open session Save session Delete session 都是基本的编辑功能,就不再说明。但是对于Session,还是要多说两句。当项目包含的文件太多 时,如何确保有效找开某组相关联的源代码,这就是Session的作用,它可以帮你更有效的组织项 目代码。然后也可以在Project->Project Options的File List中设定当项目打开时自动加载的session。 如下: F: Astyle Toolbar (Astyle工具栏) 是一组代码格式化的工具栏。这是一套自定义的工具栏,并非所有平台都有此项,但在Edit菜单 也可以发现它们。 依次为: Format files: 对多个或单个进行格式化。 Reformat Source: 对当前代码进行重新格式化。 1.1.4 集成调试环境 使用Debug配置编译程序时,可以使用F9或菜单Debug->Start进入调试模式! 则此时出现如下的界面 布局。正上方为GDB工具栏,左侧为Watch View窗口,代码区绿色箭头为当前执行的行,下方的GDB Console允许你输入GDB指令并查看输出的结果。 Horky ([email protected]) 10. 实战KDevelop进行Linux软件开发 2009-02 V0.1 设定或取消断点,只要在指定行右击,从菜单选择Toggle Breakpoint就可以了。 *如果你进入Debug状态未能出现如此画面,那就有可能所选择的配置并非Debug,亦或配置选项 中指定了优化选项。另一种则可能是没有安装Konsole,点一下下方的Konsole,如果是灰灰的一 片,那就是需要安装Konsole了。 到此,我们已经了解了KDevelop的主要组成部分。如果现在你要急于进行开发,那就直接跳到第 2章吧。下面一节,我会介绍一些KDevelop的基础配置,有时间回头看一下就可以了。 1.2配置KDevelop 如果想让KDevelop用起来更为顺手,还需要一些细节上的设置。我们一一展开。 1.2.1配置编辑环境 编辑环境重点是字体和布局。KDevelop菜单Settings->Configure Editor便是用于编辑 环境的设置: Horky ([email protected]) 11. 实战KDevelop进行Linux软件开发 2009-02 V0.1 从上至下,我只会介绍几个主要选项: Appearance: Dynamic word wrap => 是否允许自动换行 Show icon border => 是否显示断点标志所在的边框 Show line numbers => 是否显示行号 Fonts & Colors: 设定编辑器字体及色彩方案 Editing Tab Width : 显定Tab键显示的宽度,建议改为4 Indentation: Indentation mode: 直接在这里设定缩进风格,比如选择C Style. Open/Save Encoding: 对于我们经常需要中文开发,这里最好改成Unicode (utf8) Highlighting : 高亮显示的规则,其本涵盖了常用的语言了 Shortcuts : 快捷键设置 Plugins: 里面提供了有用的插件。包括自动补全功能。 如果你想要一个舒服的编辑环境,这些还是要了解一下的。 如果觉得字体太少,你可再补充一 下Linux下字体管理的知识,帮你添加更多可用的字体. 总之写程序,舒服最重要。 1.2.2 配置系统环境 Kdevelop除编辑器外还有一些其它的设定,可以通过菜单Settings-> Configure Kdevelop,叫出 KDevelop的配置对话框,值得一提的是,里面的Formatting选项,允许你选择不同的编码风格,如 下图所示: Horky ([email protected]) 12. 实战KDevelop进行Linux软件开发 2009-02 V0.1 1.2.3 配置代码管理环境 一般我们常用CVS或SVN来管理代码, Kdevelop支持四种的代码管理方式。代码管理的方式是要基 于项目设定的,需要执行菜单Project → Project Options, 然后选择Version Control就可以设定所适 用管理方式了: 以Subversion为例,当设定完成后,在编辑区右击就可以发现多出一个Subversion子菜单: 当然,如果你的项目不是从SVN Repository上check out出来的,你这样直接执行指令是不行的,因 为你现在的代码还没有进行SVN管理,你可以先通过客户端或svn指令将代码上传到Repository中 就可以了。 KDevelop的准备到此完成,现在我们可以正式开始着手进行新项目开发了。 Horky ([email protected]) 13. 实战KDevelop进行Linux软件开发 2009-02 V0.1 第2章 应用程序开发 Linux 下的应用程序开发框架,常用的有QT及GTK+。有关GTK+和QT,自然永远是那句:各有千 秋。但有一点Free这是一个重要的精神,难以想像我在Linux下写的GUI程序,可能是依据一个商 业包开发的。GTK正适合这种开发,因为它是完全Free的。KDevelop本身冠以K,就显而易见它是 针对KDE开发而设计的,对QT应用程序开发自然顺手,KDE桌面本身就是基于QT而来的。但使 用KDevelop进行GTK+程序开发则需要一些设定,也刚好符合我们这个主题。 如果你想了解更多有关QT/GTK+的信息,可以从下面网站了解一下: QT的问题 http://www.kdecn.org/whatiskde/qt.php 为什么使用GTK+ http://www.ibm.com/developerworks/cn/opensource/os-gtk1/ 下面,我们就选择GTK+程序来继续学习KDevelop。 2.1 GTK+应用程序开发 GTK+的UI目前有三种开发方式,一种为Glade 2.x的代码生成UI的方式,另一种则为Glade XML 方式,还有一种就是由开发者自行撰写UI代码。目前常用的还是前一种方式。以我个人的观点来 看,我会更愿意选择后者。原因是这样的UI和你的代码才能真正分离,这一点很重要,当你试着 写两个GTK+程序,你就会深有感触的。不过对于程序员而言,却需要有观念上的转变。 2.1.1 Glade 2.x的应用程序开发 先从创建一个GTK+ 2.x程序开始,下面我们按步骤来完成一个工程。GTK+使用Glade来进行界面 设计,并生成相应的代码,如果你没有个程序,那就需要手动安装起来。装完之后就可以看到这 样一个Glade 2.x的程序: 1.使用Glade,先把界面设计好: Horky ([email protected])
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages40 Page
-
File Size-