KDevelop 1.4

作者:Petr Sorfa

开源社区一直缺少一种专业级的 IDE(集成开发环境)。值得庆幸的是,KDevelop 提供了这样一个工具,它结合了贡献者和现有开源产品的资源。然而,KDevelop 能否达到通常基于非 UNIX 平台的商业 IDE 的期望呢?

什么是 IDE?

IDE 是一个环境,最好是图形化的,用于程序的创建、调试和维护。该环境的三个核心组件是:程序员编辑器,它对编程语言是上下文敏感的;GUI(图形用户界面)构建器,用于构建应用程序的图形前端;以及调试器,用于检测代码中的错误。

这些是 IDE 的基本要求。然而,要使 IDE 成为有用的工具,实际上需要的不止这三个组件。

安装

由于开源程序倾向于专注于完成任务,而不是用户友好,因此安装有时会变得困难和令人沮丧,特别是考虑到所有不同的 Linux 版本以及不断变化的库和工具。

KDevelop RPM 二进制文件可以通过访问 KDevelop 网站上的链接或使用诸如 http://www.rpmfind.net/ 之类的网站来查找并下载。

为了本次评测,我安装了一个全新的 Linux 系统,并确保它包含了发行版允许的每个软件包和功能。

唉,当我发现我的 Linux 系统中缺少各种库的某些依赖项时,我遇到了安装问题。快速访问互联网下载缺少的库解决了这个问题。

总安装时间大约为 30 分钟,这得益于快速的互联网连接和一点技术知识。这种安装方法非常适合具有一定 Linux 管理技能的用户。

有时,对于具有非 Linux/UNIX 操作系统的程序员、定制的 Linux 发行版以及潜在的 KDevelop 贡献者,建议从源代码构建。只有经验丰富或决心坚定的开发人员才应尝试从源代码构建 KDevelop。

必须安装所需库的所有开发版本。由于没有简单的方法来确定这些依赖项,因此从源代码构建往往是一个反复试验的过程。

KDevelop 的一个特点是它能够使用许多现有的开源工具。并非所有这些工具都是必需的,但它们对于确保 KDevelop 按预期运行是必要的。当首次启动 KDevelop 时,会给出一个关联工具列表,并标记为存在或缺失(见图 1)。一旦此列表可用,稍后可以安装缺少的工具。

KDevelop 使用的必需工具包括 g++2.7.2、g++2.8.1 或 egcs 1.1(我推荐 g++2.9.2);make;perl 5.004;autoconf 2.12;automake 1.2;flex 2.5.4;gettext;Qt 2.2.X(包括 Qt designer 和 uic);以及 KDE 2.X。

可选工具包括 enscript、Ghostview 或 KGhostview、Glimpse 4.0、htdig、sgmltools 1.0、KDE-SDK(KDE 软件开发工具包)、KTranslator、KDbg、KIconedit 和 Qt Linguist。虽然是可选的,但最好是所有这些工具都可用。

KDevelop 1.4

图 1. 初始 KDevelop 启动时检测已安装的工具

功能

尽管 KDevelop 提供了 IDE 的三个核心要求(编辑器、GUI 构建器和调试器——见图 2),但它还有其他几个功能使其成为一个强大而可靠的工具,甚至适用于商业项目。

KDevelop 1.4

图 2. 运行中的 KDevelop 1.4

对于初学者和专家来说,复杂的程序都可能令人生畏;因此程序文档至关重要。KDevelop 的文档提供了良好的在线帮助来源,尽管它缺少屏幕截图和视觉内容。可以通过工具提示和“这是什么?”光标模式获得上下文相关的帮助。

KDevelop 还索引了 KDE Lib 和 Qt 文档。存在设置书签的功能,这使得返回相关文档变得容易。KDevelop 网站上还提供了其他教程和文档。

KDevelop 具有内置的 HTML 浏览器,这使得访问文档毫不费力,并且无需外部浏览器。

以下是基本界面组件:树视图,包括类、组、文件、书籍和监视视图;输出视图,提供消息、stdout、stderr、调试器断点、调试器帧堆栈、调试器反汇编和调试器消息的输出;编辑器和文档,包括头文件/资源编辑器、C/C++ 文件编辑器和文档浏览器;以及工具栏,主菜单选项的图标表示。

KDevelop 的项目创建过程是使用应用程序向导最容易执行的过程之一,它经历了以下步骤

  1. 应用程序类型(见图 3)——此步骤允许用户选择一个模板,用于使用 KDE 2 Mini;KDE 2 Normal;KDE 2 MDI GNOME(Normal);Qt(Normal、Qt 2.2 SDI、Qt 2.2 MDI、QextMDI);终端,即文本(C、C++);和其他(自定义)创建程序。

KDevelop 1.4

图 3. 应用程序向导

  1. 生成设置(见图 4)——此步骤用于输入项目名称、位置、初始版本号、作者姓名和电子邮件。还有一些选项可以生成各种项目相关的文件,例如源文件、头文件、GNU 标准文件、图标和项目相关文档。

KDevelop 1.4

图 4. 输入项目设置

  1. 版本控制系统(见图 5)——版本控制系统对话框允许您设置源代码控制系统的参数。这取决于 Linux 发行版。一般来说,这是 CVS 工具。

KDevelop 1.4

图 5. 选择版本控制系统

  1. 头文件和代码文件的头文件模板(见图 6)——这允许开发人员为程序头文件和源文件选择自动生成的头文件。这些头文件是完全可定制的,带有标签扩展,可以填充各种信息,例如作者、文件名和日期。

KDevelop 1.4

图 6. 头文件的头文件模板设置

  1. 项目创建(见图 7)——在项目创建的最后阶段,使用 automakeconfigure 工具创建相关的项目文件和目录。请注意,如果 Linux 发行版中缺少某些必需的工具,则此创建过程可能会失败。如果确实发生故障,最好安装缺少的组件,然后重新创建项目。从项目创建失败中恢复非常困难。

KDevelop 1.4

图 7. 初始项目创建

项目创建完成后,就可以开始开发了。我强烈建议此时构建和执行项目,以检测任何构建问题。

Qt Designer

KDevelop 1.4 使用 Trolltech 的 Qt Designer。Qt Designer 提供了一个专业的界面,允许使用大多数 Qt 小部件进行 GUI 构建,并且是一个非常有用的工具,可以将 GUI 小部件和组件相互关联(最好将其视为可视化编程)。

以下是在 KDevelop 1.4 下使用 Qt Designer 创建 GUI 组件的过程概要(见图 8)。

KDevelop 1.4

图 8. KDevelop 1.4 GUI 构建器,Trolltech 的 Qt Designer

Qt Designer 本身就是一个主要产品,需要一篇单独的文章才能充分描述其功能和用法。在本文中,将介绍其与 KDevelop 的相关性。

Qt Designer 允许使用布局工具并访问所有小部件属性。它能够创建小部件之间的关系,例如单击一个按钮与关闭一个窗口。

Qt Designer 仅生成一个描述对话框的中间 XML .ui 文件。另一个 Qt 实用程序 uic 用于从 .ui 文件生成实际的源代码文件。KDevelop 1.4 支持 .ui 文件,但用户需要将 .ui 文件添加到项目中。当用户启动 make 或 rebuild 时,KDevelop 会自动调用 uic 来生成相关的关联代码。

不幸的是,每当用户使用 Qt Designer 更改 .ui 文件时,uic 都会重写所有生成的代码文件。这意味着用户无法编辑这些生成的源文件。要使用 uic 工具生成的代码,用户需要在实现用户定义的功能之前继承生成的代码类。

调试

KDevelop 利用 gdb 来提供调试工具(见图 9)。在编辑窗口的左侧列中单击会在现有代码中设置断点。即使程序未运行或处于不可编译状态,也可以设置断点,这些断点称为惰性断点。KDevelop 以蓝色显示惰性断点,以红色显示活动断点。源代码的相应行旁边的一个绿色箭头指示当前执行点。

KDevelop 1.4

图 9. 调试项目

KDevelop 提供了大多数所需的基本调试功能,例如基本执行、下一行和程序中断。用户可以激活浮动调试工具栏,以便更轻松地访问调试命令(见图 10)。在树视图中,“变量树”选项卡显示当前可用的变量。

KDevelop 1.4

图 10. 浮动调试器工具栏

调试器相关信息显示在调试器、汇编、帧堆栈和断点输出窗口中。

默认调试器支持的问题在于,希望进行更精细级别调试的用户无法直接访问 gdb。另一个问题是,用户只能通过“监视”输入行以非直观的方式更改变量值。但是,KDevelop 可以配置为使用外部调试器,例如一直很受欢迎的 DDDkdbgxxgdb

外部应用程序

KDevelop 允许在其框架内执行 KDE 应用程序。默认情况下设置了诸如 GIMPArkKBabel 之类的应用程序。用户可以通过“选项”->“工具”菜单添加自己的应用程序。

编译、构建和分发

项目的编译和构建可以通过各种菜单选项完成,例如 make、clean、rebuild、clean for distribution 和 auto configuration。KDevelop 很智能,如果需要,它会在程序执行前提示您重建项目。

“项目”->“创建发行版”->“Source.tgz”菜单项允许创建用于分发的源代码。不幸的是,似乎没有自动生成 RPM 或 RPM spec 文件以进行更有用的打包的方法。

配置管理(源代码控制)

如果在项目创建期间选择了版本控制系统,则可以将指定的文件添加到源代码控制系统(见图 11)。这可以通过在“组”或“文件”视图中选择文件的“添加到存储库”弹出菜单选项来完成。可以通过“提交”选项提交更改,并通过“更新”选项检索其他开发人员的更改。

KDevelop 1.4

图 11. 使用源代码控制系统

由于 CVS 支持远程存储库,因此可能存在使用 KDevelop 的多开发人员项目。但是,KDevelop 不提供与 CVS 相关的全部功能,例如文件监视和编辑权限。

用户生成的文档

KDevelop 具有通过 kdocdoxygen 生成程序 API 文档的挂钩。生成后,用户可以使用 KDevelop 浏览用户 API 文档。这对于有多个开发人员的大型项目非常方便。

如果在项目创建期间选择了用户文档,则会自动生成用户手册 HTML 模板。是否使用 HTML 编辑器填写此信息取决于用户。

支持

开源项目可能存在的缺点之一是支持。有时一个项目会陷入停滞,并且可能几乎不可能联系到某人来解决问题、寻求帮助或报告错误。但是,KDevelop 有一个非常活跃的邮件列表,该列表由 KDevelop 的几位维护人员持续监控。KDevelop 本身提供了一个错误报告工具,允许用户将问题描述发送给 KDevelop 团队。

因此,支持不是问题,再加上各种在线文档,KDevelop 提供的支持水平是大多数商业产品都无法比拟的。

愿望清单中缺少什么

尽管 KDevelop 是一个强大而有用的工具,但仍缺少或需要改进几个功能领域

  • 一个智能编辑器会很方便,它可以自动完成您的代码,例如当前函数的参数。

  • KDevelop 1.4 语言支持主要限于使用 gcc/g++ 编译器的 C++ 和 C 应用程序。

  • 可以更好地支持与其他 GUI 构建器(例如 GNOME GUI 构建器 glade)集成。

  • 将现有项目合并到 KDevelop 中并不容易。

  • 缺少提供数据库连接和企业级开发基础的快速应用程序开发 (RAD) 组件。

由于 KDevelop 是一个开源程序,因此这些缺失或不完整的功能可能根本不是问题。KDevelop 团队一直在努力改进 IDE,如果真的需要某个功能,请自己实现它并成为 KDevelop 团队的一员。

总结

KDevelop 具有相当于中级商业 IDE 的功能。它与 Linux 平台集成良好,利用了许多开源工具,并提供了难以匹敌的支持水平。尽管仍有改进空间,但 KDevelop 履行了适用于小型到中型项目和开发团队的开发环境的功能。

KDevelop 1.4
Petr Sorfa (petrs@sco.com) 是 Santa Cruz Operation 开发系统组的成员,他在该组中是 cscope 和 Sar3D 开源项目的维护者。他拥有开普敦大学的 BSC 学位和罗德斯大学的 BSC 荣誉学位。他的兴趣包括开源项目、计算机图形学、开发系统和连续艺术(漫画)。
加载 Disqus 评论