实战kdevelop进行linux软件开发 2009-02 V0.1

实战kdevelop进行linux软件开发 2009-02 V0.1

实战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])

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    40 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us