Linux 版 (精华区)

发信人: Sun (大灯泡戒网), 信区: Linux
标  题: Linux集成开发环境(一)
发信站: 紫 丁 香 (Sun Oct 31 18:14:47 1999) WWW-POST

深入系统地介绍Linux的各个技术特性,是本栏目近期的一个焦点。本期和下一期刊发
Linux的三种主要集成开发环境,随后还将介绍Linux系统管理、Apache、Linux资源网站
以及各种中文化技术等,谨请读者关注。
Linux系统是一个功能强大、安全可靠、免费使用的操作系统,受到越来越多用户的重视
和欢迎,成为Windows操作系统之外的一个非常有前途的操作系统。最近刚刚召开的
LinuxWorld大会更是将Linux应用推向一个新的高潮。我国政府有关部门也在大力支持开
发具有自主版权的Linux系统,国内甚至有著名PC厂商在出售品牌机时改为预装Linux。这
一切都必将进一步推进Linux系统在我国的普及和应用。

与Windows系统相比,Linux的普及还存在许多障碍,其中一个很重要的原因就在于缺乏用
于Linux的良好的快速开发工具和集成化开发环境(IDE)。

本文分两期介绍三种可视化的Linux集成开发环境:GNUPro Toolkit、Code Crusader和
CodeWarrior for Red Hat Linux,GNU Edition。其中Code Crusader是开放源代码的IDE
,而其它两种IDE则未开放源码。这三种IDE现在都是商业产品,不过Code Crusader是免
费的。

这些工具将有助于开发更多的Linux应用程序,它们将使Linux应用程序的设计、编写和调
试更加容易。由于它们类似于Windows和MacOS上的集成开发环境,这将有利于程序员从这
些平台转移到Linux。Linux要想进一步扩大在商业桌面操作系统市场中的市场份额,需要
具有更多的Linux应用程序支持。这就要求使用Linux平台的程序员能够更方便快捷地开发
各种商业级的Linux应用,Linux集成开发环境(IDE)的出现将极大地方便众多Linux程序员
的这种要求。

Cygnus和Metrowerks公司推出的IDE工具对硬件的最低要求都是32MB内存和Pentium处理器
。现在开发员使用的机器显然都可以满足这样的硬件要求,Linux操作系统与Windows系统
相比一个重要的优势就是它对硬件的要求要低一些。需要指出的是,虽然Metrowerks公司
的Web站点称CodeWarrior的最低要求是64MB内存,但CodeWarrior的在线文献却称最低内
存只需32MB即可。

为了比较这些IDE,我们在每一种Linux IDE中敲入一段C程序并且编译和调试它。此外,
我们还运行了两个分别用C和C ++编写的约3000行左右源代码的小项目和一个来自JX工
具包的jCore库,它是一个约有16000行源代码的中等规模的项目。

许多程序员在Windows NT下开发程序时都使用XEmacs作为编辑器,并且使用MSVC ++作
为编译器和调试器。需要转移到Linux IDE的编程者对XEmacs和MSVC ++一般都比较熟悉
,因此在本文中将对这三种Linux IDE与XEmacs和MSVC ++进行比较。

XEmacs可以说是现代程序员使用的一个非常标准的代码编辑器。它能够将语法高亮度显示
,支持几乎所有的语言,并且能够同两种主要的Linux帮助系统(man pages和info 
documents)很好地集成。在XEmacs中,所有的可视化缺点(如工具条、翻卷条和菜单条)都
可以被关闭。XEmacs甚至具有一些源代码浏览特性,例如具有一个功能菜单和一个允许你
跳到另一个文件或目录中的函数或常量定义。XEmacs提供对make和gdb的命令行访问,能
够自动跳转到编译器发现的错误点。XEmacs具有一个强大的、健壮的扩展语言Emacs Lisp
,它可以使用按照GPL原则获得的许多免费的扩展模块。XEmacs缺乏form painter、移动
调试器窗口(用于查看watch表达式、stack帧和登记)以及项目系统。XEmacs虽然是一个相
当好的IDE,但它最大的不足可能就是学习起来比较困难。也就是说,尽管XEmacs具有很
好的文献说明,但对于初学者来讲要熟练掌握它并不是一件容易的事情。

MSVC++是一个使用起来非常方便的IDE:它具有丰富的项目向导,使程序员可以很容易
创建各种项目。不过在MSVC ++中创建一个空的项目是困难的,因为它总是试图在ATL 
COM AppWizard中引导你创建项目内容。MSVC++的调试器是相当好的,但它的一个主要
不足就在于它根本没有命令行方式的接口。MSVC ++具有form painter,并且能够自动
产生事件处理代码,这很可能是它最吸引人的地方。

Cygnus:遵循GNU的IDE

Cygnus Solutions公司一个很有名的口号就是“Cygnus,你的GNU支持(Cygnus,your 
GNU support)”,因此Cygnus的IDE是基于GNU的工具就不足为奇了。Cygnus的产品包括两
部分GNUPro Toolkit(gcc编译器系列的商业版)和Source-Navigator(集成化编辑器和源
代码浏览器)。这两种Cygnus工具中功能更强大的是Source-Navigator,虽然它们可以集
成在一起,但实际上它们并不能算是一个真正的IDE。Cygnus计划发布一个用于Linux的真
正的IDE,称为Code Fusion。Code Fusion将把GNUPro Toolkit和Source-Navigator集成
起来,增加一些新特性,并且将取代Source-Navigator,Professional Edition for 
Linux。

从CD-ROM上安装Source-Navigator和GNUPro的安装过程如下:

(插入GNUPro光盘)

1 # mkdir -p /var/local/lib/rpm

# mkdir /home/cygnus ; ln -s /home/cygnus /usr/cygnus

2 # rpm -i --nodeps --percent /cdrom/redhat-4.2-980810.rpm

(switch to the Source-Navigator CD)

# cd /tmp

3 # tar xzf /cdrom/SN-4.2E-linux.tar.gz

# cd install

4 # ./INSTALL

Application initialization failed: Can't find a usable init.tcl in the 
following directories: /tmp/install/lib/tcl8.1 [ ... ]5 # ls -l lib

# rmdir lib

6 # ln -s share lib

7 # ./INSTALL

# cd /home/cygnus/snavigator

# ls

LICENSE.TXT README.TXT bin/ html/ libexec/ run/ share/

8 # ln -s share lib

# rm -rf /tmp/install

在开放性和可配置性方面,Cygnus介于JX Code Crusader和Metrowerks CodeWarrior之间
。JX提供了源代码,程序员可以完全按自己的需要进行修改,而CodeWarrior几乎是不可
修改的。Source-Navigator使用明文格式的配置文件,可以通过修改它来增加新版本的
控制系统和对其它语言的支持,但是它的项目文件和数据库是二进制格式的。未来的改进
将采用更加开放的项目文件格式,可能采用明文格式或基于XML的格式。

与XEmacs和MSVC ++的相比,Cygnus的编辑器与MSVC ++的编辑器更相似。它使用通用
的用户访问(CUA)绑定,如Control-X用于剪切(cut)、Control-Z用于取消(undo)。所有
的菜单和菜单条目具有快捷键,绝大多数菜单具有快捷方式。编辑器的屏幕空间有些小,
因为许多部分被功能控制和按钮占据了,但是这些功能控制对源代码浏览器是很关键的,
因此它们占用一定的屏幕空间也是必需的。

Source-Navigator是最好的源代码浏览器之一。通过选择编辑器窗口中的一个条目类分
级、类浏览器、交叉参考即可启动源代码浏览器。右击标志符会打开一个与这个标志符对
应的操作菜单。Source-Navigator的grep窗口是相当标准的,它具有允许程序员grep(全
文检索)所有项目文件的功能。Source-Navigator的搜索功能也很强大,它允许在整个标
志符涉及的全部范围内进行搜索,这对于快速查找一个功能声明或预处理器定义的值是非
常有用的。用户可以过滤任何显示出来的特性列表,如方法、类、返回类型和参数列表等
。Source-Navigator的历史特性可以跟踪曾经使用过的浏览操作。Source-Navigator惟
一不足是它产生的数据库很庞大。

Source-Navigator的集成化创建系统与XEmacs一样存在不足。虽然make接口允许你执行
任意的shell命令(通常是make -k)并且跳到编辑器中的错误点,但是用户无法从项目的
文件列表中产生makefile。

Cygnus的Linux开发工具具有很好的文献说明。Cygnus为GNUPro Toolkit和Source-
Navigator提供了精美的印刷手册,其中提供了安装指令和针对Source-Navigator和调试
器的用户指南。对于嵌入式系统开发人员来讲,Cygnus还提供了一个好处:GNUPro手册还
提供了一个有关链接器的文献说明,它将告诉你怎样增加一个新的链接器目标。

但是,Source-Navigator没有提供与系统帮助的集成,没有与man pages和info files的
接口,并且没有提供C语言参考。GNUPro虽然提供了有关编译器的所有帮助信息和HTML文
献以及用于C库的HTML文献,但是用户无法在Source-Navigator中阅读和打印这些文件。
而且,除非Netscape已经在运行,否则选择Source-Navigator的Help|Contents菜单会导
致在控制台上出现一个奇怪的错误信息,但在Source-Navigator却没有任何错误信息。


Cygnus调试器是Cygnus Insight,通常称为GDBTk。它对GNUPro Toolkit中提供的gdb进行
了可视化的改进,但是GDBTk只提供了有限的gdb命令。例如,没有图形化的方法来“杀掉
(kill)”正在被调试的程序。虽然每一个工具条按钮会打开一个控制窗口,它能够提供对
gdb命令行的访问,但是要是gdb命令行是主调试窗口的一部分的话就更好了。GDBTk提供
了几种查看源代码的方式:源代码、装配方式、源代码和装配方式混合,并且源代码和装
配方式位于不同的窗口中。纯源代码模式一般是最有用的,但是混合模式对于调试优化代
码和缓冲区滥用是非常有用的。上述所测试的三种IDE都有一个不如XEmacs和MSVC ++的
地方:不能在调试窗口中编辑程序。尽管如此,GDBTk与gdb相比仍然有巨大的改进,而且
Cygnus最近宣布它将开放GDBTk的源代码,这将会进一步改进GDBTk的功能。另外,还可以
对Source-Navigator进行配置以便使用外部编辑器(如XEmacs)和外部调试器(如DDD)。

Source-Navigator是一个极好的源代码浏览器,它非常适合开发大中型项目的程序员使
用。Cygnus调试器虽然使用GDBTk对GNUPro Toolkit中的gdb进行了改进,但它的功能还很
有限。如果将来两者之间的集成度进一步提高(在Code Fusion中可能这样),如果GDBTk本
身也得到进一步改进,并且帮助系统被扩展到系统man和info文件的话,那么它将会成一
个更加强大的Linux IDE。(待续)
 
--
    太阳就是个大灯泡。

※ 来源:·紫 丁 香 bbs.hit.edu.cn·[FROM: 202.118.239.237] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.058毫秒