GTK is generally used to represent software packages and shared libraries, and GTK + is used to represent the graphic component set of GTK. In the process of developing gnome with GTK +, some new components were developed based on the above components due to actual needs. These components are generally called gnome components (corresponding to the GTK + component ). These components are complementary to the GTK + component library, which provides functions that are not available to many GTK + components. Essentially, GTK + components are similar to Gnome components. 1. The gnome development structure can only use GTK + components to develop excellent Linux applications. However, gnome components, especially gnomeapp and gnomeuiinfo, it makes it easier for applications with the same development interface. Some new features of gnome, such as popt parameter analysis and saving application settings, are also not available in the GTK + component. Gnome provides gnome APIs for almost all languages, including Ada, scheme, Python, Perl, Tom, Eiffel, Dylan, and Objective C. There are at least three different C ++ packages. The gnome development architecture includes the following content: (1) the non-gnome library glib is the basis of gnome. It is a C tool library and provides practical functions for creating and operating common data structures. GTK + (gimp Toolkit) is a GUI toolkit used in GNOME applications. GTK + depends on glib. The GTK + package contains gdk, which simplifies the underlying X Window System Library xlib. GTK + uses gdk instead of calling xlib directly. Therefore, the transplanted version of gdk allows GTK + to run on a Windows system that is different from X but has few modifications. For gnome applications, GTK + has the following features: 1) dynamic type system. 2) an object system written in C language can implement inheritance, type verification, and the basic structure of the signal/callback function. 3) The types and object systems are not particularly Gui-specific. 4) The gtkwidget object uses the Object System, which defines the interface for using GTK + graphics components. 5) a large number of gtkwidget sub-classes (components ). Orbit orbit is a C-developed CORBA 2.2o RB. Orbit is implemented in a set of library functions. Orba, or Common Object Request Broker Architecture, is an object request intermediary or orb specification. Imlib (Image Library) provides some routines, including loading, storage, and display, as well as the function for plotting various popular image formats (including GIF, JPEG, PNG, And Tiff. It includes two versions: xlib-only and gdk-based. Gnome uses the gdk version. (2) The library described below in the gnome Library is part of the gnome-libs package and is specially developed for the gnome project. Libgnome is a collection of functions unrelated to graphic user interfaces. It contains the code for analyzing the configuration file and interfaces with some external utilities, for example, the international programming interface (through the GNU gettext package), variable parsing (through the popt package), and sound programming interface (through enlightenmentdaemon, esound. Libgnomeui contains Gui-related gnome code. Libgnomeui mainly includes: 1) The gnomeapp component is generally used to create the main window for the application. It uses the gnomedock component to allow users to rearrange the toolbar and drag the toolbar from the window. 2) The gnomecanvas component is used to compile complicated, non-blinking custom components. 3) gnome's built-in pixmap (including icons for opening, closing, saving, and other operations) is used to create and use a dialog box routine. Gnomepixmap has more features than gtkpixmap. There are several other components in libgnomeui, such as gnomeentry and gnomefilepicker. Libgnorba provides CORBA-related utilities, including security mechanisms and object activation. The libzvt library contains a terminal component (zvtterm) that can be used in GNOME programs. The libart_lgp library contains graphic rendering routines written by Raph levien. Essentially, it is a vector graphics grating graphics library, which features similar to the PostScript Language. (3) other libraries these libraries are generally used in GNOME applications, but they are not exclusive to gnome-libs. Gnome-print gnome-XML is written by Daniel veillard of the WWW Association. It can analyze XML according to the tree structure and output the tree structure according to XML. This library does not depend on any other library (or even Glib), so it is only a gnome library in name. Guile guile is the implementation of scheme programming language in a library, which enables any application to carry an embedded sheme interpreter. Bonobo is an object embedded structure, similar to Microsoft's Ole. Any application will be able to call the gnome library through appropriate bonobo components to display mime-type data, such as plain text, HTML, or images. If you use the C ++ language to develop a GTK +-based application, you can use a function library named GTK. It is a C ++ encapsulation of the GTK toolkit.