GNOME開発におけるこれらのライブラリ/用語の違いまたは関係は何ですか?
これらはすべて GNOMEプロジェクト によって開発されたライブラリです。事実上、これらはGNOME環境またはこれらのライブラリを利用するその他のデスクトップ環境で動作することを目的としたアプリケーションのビルディングブロックです。
Gtk :GUIインターフェース(ウィンドウとそのコンテンツ)を作成するためのウィジェットツールキット/ライブラリ、GIMPツールキットの略語。 GNOMEおよびXFCE、Unity、Cinnamon、Mateなどの他のデスクトップで使用されます。引用するには documentation :
GTK +は、GNOMEアプリケーションでユーザーインターフェイスを構築するために使用される主要なライブラリです。ユーザーインターフェイスコントロールとユーザーインターフェイスを制御するためのシグナルコールバックを提供します。
GLib :高度なデータ構造()、プログラミングインターフェイス、およびIPC機能のライブラリ。引用するには GLibリファレンスマニュアル :
GLibは、Cで記述されたライブラリとアプリケーションのコアアプリケーションビルディングブロックを提供します。これは、GNOMEで使用されるコアオブジェクトシステム、メインループ実装、および文字列と一般的なデータ構造用のユーティリティ関数の大規模なセットを提供します。
GLibは、GObjectとGtkの両方から独立して使用できます。
GObject :別名GLibオブジェクトシステム、オブジェクトライブラリ(元はオブジェクト指向ではないが、他の多くの言語へのバインディングが出現したため、Cプログラミング言語を対象としています)。もともとはGLibの一部でした。 Gtkでアクティブに使用され、Gtkの多くのオブジェクト(Gtk Windowなど)は基本的なGObjectタイプを継承しています。
Atk : Accessibility library 。Gtkとアクセシビリティデバイス間のブリッジと考えることができます。ドキュメントからの引用:
「ATKは、GNOMEがコンピューターを最大限に活用するために追加のサポートを必要とするユーザーのアクセシビリティを有効にするために使用するツールキットです。ATKは、スクリーンリーダー、拡大鏡、入力デバイスなどのツールによって使用され、代替手段を通じてデスクトップとの豊富な対話を可能にします」
これらはすべて [〜#〜] gio [〜#〜] 、ファイルシステム情報、ファイル、デバイス、アプリケーション情報、および多くの情報を扱うGnome入出力ライブラリとも密接に関連していますGNOMEアプリケーション開発者の生活を少し楽にする他の抽象化。例としては、ウィジェット、ボタン、ウィンドウにGtkを使用するNautilusファイルマネージャがあります。ファイルとデバイスの情報を照会するGIO(コード例とともに 関連する回答 を参照) GLib for file operations ; ウィジェットをアクセス可能にする に攻撃します。