KDevelop 1.4
制造商:开源贡献者
价格:免费下载
作者:Petr Sorfa
开源社区一直缺少一种专业级的 IDE(集成开发环境)。值得庆幸的是,KDevelop 提供了这样一个工具,它结合了贡献者和现有开源产品的资源。然而,KDevelop 能否达到通常基于非 UNIX 平台的商业 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 提供了 IDE 的三个核心要求(编辑器、GUI 构建器和调试器——见图 2),但它还有其他几个功能使其成为一个强大而可靠的工具,甚至适用于商业项目。
对于初学者和专家来说,复杂的程序都可能令人生畏;因此程序文档至关重要。KDevelop 的文档提供了良好的在线帮助来源,尽管它缺少屏幕截图和视觉内容。可以通过工具提示和“这是什么?”光标模式获得上下文相关的帮助。
KDevelop 还索引了 KDE Lib 和 Qt 文档。存在设置书签的功能,这使得返回相关文档变得容易。KDevelop 网站上还提供了其他教程和文档。
KDevelop 具有内置的 HTML 浏览器,这使得访问文档毫不费力,并且无需外部浏览器。
以下是基本界面组件:树视图,包括类、组、文件、书籍和监视视图;输出视图,提供消息、stdout、stderr、调试器断点、调试器帧堆栈、调试器反汇编和调试器消息的输出;编辑器和文档,包括头文件/资源编辑器、C/C++ 文件编辑器和文档浏览器;以及工具栏,主菜单选项的图标表示。
KDevelop 的项目创建过程是使用应用程序向导最容易执行的过程之一,它经历了以下步骤
应用程序类型(见图 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++);和其他(自定义)创建程序。

图 3. 应用程序向导
生成设置(见图 4)——此步骤用于输入项目名称、位置、初始版本号、作者姓名和电子邮件。还有一些选项可以生成各种项目相关的文件,例如源文件、头文件、GNU 标准文件、图标和项目相关文档。
版本控制系统(见图 5)——版本控制系统对话框允许您设置源代码控制系统的参数。这取决于 Linux 发行版。一般来说,这是 CVS 工具。
头文件和代码文件的头文件模板(见图 6)——这允许开发人员为程序头文件和源文件选择自动生成的头文件。这些头文件是完全可定制的,带有标签扩展,可以填充各种信息,例如作者、文件名和日期。
项目创建(见图 7)——在项目创建的最后阶段,使用 automake 和 configure 工具创建相关的项目文件和目录。请注意,如果 Linux 发行版中缺少某些必需的工具,则此创建过程可能会失败。如果确实发生故障,最好安装缺少的组件,然后重新创建项目。从项目创建失败中恢复非常困难。
项目创建完成后,就可以开始开发了。我强烈建议此时构建和执行项目,以检测任何构建问题。
KDevelop 1.4 使用 Trolltech 的 Qt Designer。Qt Designer 提供了一个专业的界面,允许使用大多数 Qt 小部件进行 GUI 构建,并且是一个非常有用的工具,可以将 GUI 小部件和组件相互关联(最好将其视为可视化编程)。
以下是在 KDevelop 1.4 下使用 Qt Designer 创建 GUI 组件的过程概要(见图 8)。
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 提供了大多数所需的基本调试功能,例如基本执行、下一行和程序中断。用户可以激活浮动调试工具栏,以便更轻松地访问调试命令(见图 10)。在树视图中,“变量树”选项卡显示当前可用的变量。

图 10. 浮动调试器工具栏
调试器相关信息显示在调试器、汇编、帧堆栈和断点输出窗口中。
默认调试器支持的问题在于,希望进行更精细级别调试的用户无法直接访问 gdb。另一个问题是,用户只能通过“监视”输入行以非直观的方式更改变量值。但是,KDevelop 可以配置为使用外部调试器,例如一直很受欢迎的 DDD、kdbg 和 xxgdb。
项目的编译和构建可以通过各种菜单选项完成,例如 make、clean、rebuild、clean for distribution 和 auto configuration。KDevelop 很智能,如果需要,它会在程序执行前提示您重建项目。
“项目”->“创建发行版”->“Source.tgz”菜单项允许创建用于分发的源代码。不幸的是,似乎没有自动生成 RPM 或 RPM spec 文件以进行更有用的打包的方法。
如果在项目创建期间选择了版本控制系统,则可以将指定的文件添加到源代码控制系统(见图 11)。这可以通过在“组”或“文件”视图中选择文件的“添加到存储库”弹出菜单选项来完成。可以通过“提交”选项提交更改,并通过“更新”选项检索其他开发人员的更改。
由于 CVS 支持远程存储库,因此可能存在使用 KDevelop 的多开发人员项目。但是,KDevelop 不提供与 CVS 相关的全部功能,例如文件监视和编辑权限。
KDevelop 具有通过 kdoc 和 doxygen 生成程序 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 团队的一员。
