# Anjuta IDE マニュアル

v1.0.0

Anjuta IDE マニュアル

Naba
Kumar
Andy
Piper
Biswapesh
Chattopadhyayr
Johannes
Schmid
2001-2002
2006-2008
Naba Kumar, Andy Piper, Biswapesh Chattopadhyay
Johannes Schmid
2010.
Hiroyuki Sekihara (hiroyuki.sekihara@gmail.com)

GNU Free Documentation License (GFDL) の管理下でこのドキュメントをコピー、配布、または変更することを許可します。Free Software Foundation から発行されたバージョン 1.1 以降のドキュメントには、 セクションや表紙などがありません。GNU Free Documentation Licenseのコピーの入手はFree Software Foundationのウェブサイトを訪れるか、以下にメールしてください: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

他の企業の製品やサービスと区別するために使用する名前を登録商標と呼びます。GNOME ドキュメンテーション プロジェクトで登録商標を表示する場合は、すべて大文字か最初の1文字だけ大文字で記載しています。

Anjutaマニュアル2.1.0
2007

Johannes Schmidjhs@gnome.org

Anjuta Team

## はじめに

Anjuta とはGNOME デスクトップ用の、多目的な統合開発環境(IDE)です。プロジェクト管理、アプリケーション ウィザード、対話型のデバッガ、Glade UI デザイナ、Devhelp API ヘルプ、Valgrind メモリプロファイラ、gprof パフォーマンス プロファイラ、クラスジェネレータ、強力なソースエディタ、そしてソース表示といった、プログラムの開発に必要とするであろうすべての機能が含まれています。

Anjuta DevStudio はシンプルな操作性であるにも関わらず、あなたがプログラムを開発するときに必要とするニーズのすべてを満たすパワフルさを兼ね揃えています。私たちは Anjuta を開発する過程でさまざまな機能を追加してきました。私たちは、パワフルさと使いやすさの両立、そしてプログラミング開発を楽しめるようにすることを目的に、あなたに Anjuta を最高の IDE だと感じてもらえるよう、Anjuta の改良と信頼性向上を続けていきます。あなたが Anjuta を楽しく使ってくれることを願います。でも、もしそうでなかった場合は Anjuta をよりよいものにするためにバグの報告や提案をすることで私たちを手助けしてください。

これはAnjutaを使用したときのスクリーンショットの一例です。

### Anjutaの使用例

Anjutaの使用例

Anjuta は柔軟で優れたドッキングシステムを持っており、ビューをドラッグアンドドロップして、あなたが望むようにレイアウトできます。また、レイアウトした設定はプロジェクトごとに保存されるので、レイアウトをプロジェクトごとに管理できます。 ビューをドッキングしたことにより、メイン ウィンドウが分断されて見にくくなってしまったときは、ビューを最小化することができます。最小化したビューは、メイン ウィンドウの左側にアイコン化表示されます。また、メニューのアイテムに表示されているショートカットとは別に、専用のショートカットを設定することができます

Anjutaに関する問題をレポートしてください。それはソフトウェアの改良の手助けとなり、同様にオープンソースコミュニティを助けることでもあります。

## Anjuta を使ってみる

### メニューとショートカット

Anjuta のメイン ウィンドウ上部にあるメニューバーから、Anjuta のほとんどすべての機能にアクセスできます。操作は種類ごとにグループ化されています。例えばファイルに関する操作は ファイル メニューからアクセスできます。

#### メニューバー

Anjuta のメニューバー

#### ファイル メニュー

ファイル メニュー

多くのメニューアイテムには、そのアイテムの横に表示されているようなショートカットキーが用意されています。以下にそれ以外の便利なショートカットを示します。

- ドキュメントの切り替え: CtrlAltPage Up で次の文書に、 CtrlAltPage Down で前のドキュメントに切り替えることができます。 タブを右クリックしてポップアップ表示されるドキュメント一覧を選択することでも切り替えが可能です(タブがすべて表示しきれないような場合に便利なやりかたでしょう)。デスクトップの設定によってはこれらのショートカットが既に登録済みの場合があります。そのようなときはショートカットを他のキーに再設定する必要があります(上述した Anjuta のショートカットは固定なので再設定はできません)。

- 状況依存ヘルプ: ShiftF1 API ヘルプを参照したい単語(例えば関数名など)にカーソルを移動してこのショートカットキーを押してください。状況依存ヘルプは、Devhelp がインストールされている場合のみ有効です。インストールされていない場合はヘルプメニュー、およびツールバーが無効になります。Devhelp は Devhelp のウェブサイトで入手できます。また、Devhelp で参照するためのリファレンスもインストール必要があるでしょう。

- オートコンプリート: CtrlEnter 入力しきっていない語の末尾でこのショートカットを押すと、残りの部分を補完した語のリストが表示されるので、もし望む語がリストにあればそれを選択して入力することができます。

- その他のショートカット: その他にもメニューアイテム右側に表示されているるようなさまざまショートカットが使用できます。また下記のヒントで紹介しているような方法で、ショートカットをカスタマイズすることも可能です。

#### ショートカットのカスタマイズ

メニューの 編集設定 から ショートカット タブを選択することで既存のショートカットをカスタマイズできます。

### メイン ウィンドウ

メイン ウィンドウはいくつかのビューからなりたっていて、それらのビューはビューのタイトルバーをドラッグすることで再配置できます。またタイトルバーの左側にある最小化ボタンを押せば最小化できます。

1. ドキュメント ウィンドウは(もし複数のドキュメントを開いているとしても)1つのアクティブ ウィンドウを持ちます。ファイルに関するコマンドは、このアクティブなドキュメントに対して実行されます。タブをクリックすればドキュメントを切り替えることができます。また、タブを右クリックして表示されるポップアップメニューのドキュメントを選択することでもきりかえることができます。大量のドキュメントをオープンして、タブが表示し切れないような時は重宝するでしょう。

2. プロジェクト ウィンドウには、そのプロジェクトのファイルがツリーで表示されます。プロジェクトウィンドウのアイテムをダブルクリックすればそのファイルをオープンすることができます。プロジェクトを開いていないときは通常は表示されません。

3. ファイル ウィンドウはファイルをツリー表示します。もしプロジェクトをオープンしていない場合は、ファイルシステムのルートを表示しますが、この設定は変更する事が可能です。プロジェクトをオープンしている場合は、プロジェクトのすべてのファイルが表示されます。表示されたファイルをダブルクリックすることで、GNOME の MIME 設定に応じた、適切なアプリケーションが起動されます。また、右クリックして表示されるコンテキストメニューから、オープンする方法を選択する事もできます。

4. シンボル ウィンドウはプロジェクトが ctags で生成した、利用可能なシンボルがツリー表示されます。表示されたシンボルをクリックすると、そのシンボルに対応したソースの行が表示されます。

   シンボル ウィンドウの検索タブから、シンボルを検索する事もできます。

5. メッセージ ウィンドウには、コンパイラなどの外部コマンドを実行したときのすべてのメッセージ(`stdout` と `stderr` の両方)が出力されます。メッセージウィンドウは通常表示されていませんが、プロジェクトやファイルのコンパイル、デバッグや検索などで外部コマンドが実行されると表示されます。Anjuta は必要があれば自分自身のメッセージを追加出力します。

   メッセージは重要度により色分けされています。通常のメッセージは標準の色(通常は黒色)、警告はオレンジ色、エラーは赤色で出力されます。警告とエラーのメッセージについては、原因の場所と リンク しているので、メッセージをダブルクリックして、メッセージに表示されているファイルの該当の行に移動することができます。

   例えばエラーが含まれているファイルをコンパイルすると赤い文字で、何が原因なのか、何が起きたのかが出力されるので、そのメッセージをダブルクリックして、エラーを含んだファイルがオープンすることができます、エラーに該当する行はハイライト表示されます。

6. ターミナル ウィンドウ はあなたが普段使っている、GNOME の端末のような端末エミュレータです。

#### セッション マネージメント

Anjuta を終了するときに、ウィンドウのサイズや位置を含めたすべての設定が保存されます。しかしセッション マネージメントは、まだ開発中の機能なので Anjuta を終了する時は、保存していないドキュメントを保存してから終了するようにしてください。Anjuta は終了時に保存していないドキュメントがあると警告を表示します。

## ファイル操作

### ファイルの新規作成とテキストの挿入

#### ファイルの新規作成

ファイルの新規作成は、メニューの ファイル新規 を選択するか、ツールバーの 新規 ボタンをクリックします。これにより、エディタ(すでにドキュメントが表示されている場合は新しいウィンドウ)に `新しいファイル1`、`新しいファイル2`、`新しいファイル3` といった名前で新しいファイルが作成されます。

##### ファイルの保存

クラッシュなどのアクシデントでデータを失うのを防ぐためにも、新しく作成したドキュメントは、できるだけ早く保存するようにするべきです。

#### ファイル ウィザード

ファイルの新規作成でもウィザードが使用されています。メニューから、ファイル新規ファイル を選択してファイルを新規作成するときに、ウィザードとして ファイルの新規作成 ダイアログが表示されます。そこでファイルの種類と名前を入力すると、種類に応じた拡張子が自動的に追加されます。あなたが選んだライセンスに応じたライセンス情報を追加することもできます。C/C++ ヘッダファイルの場合は、ヘッダのテンプレートも追加できます。そして、OK ボタンを押下すると新しいファイルが作成されます。

##### ファイルの新規作成ウィザード

ファイルのオープン ダイアログ

何らかの操作の際に、Anjuta が ファイルの新規作成 ウィンドウを表示する場合もあります。例えば Subversion で `差分` や `ログの表示` の操作を行うと、ファイルを新規に作成してそこに結果を出力します。その結果を保存したいときは、実際のファイルに保存できます。

#### マクロの挿入

マクロ を使用すれば、定形のテキストを繰り返し、素早く入力することができます。

マクロのプラグインが有効になっていなければなりません。

##### 挿入

マクロには2つのタイプがあります: Anjuta のマクロとユーザが定義したマクロ("ユーザのマクロ集"と表示されます)と Anjuta のマクロです。Anjuta のマクロは編集することができませんが、自分で定義したユーザマクロは、自由に修正することができます。

マクロを挿入するには、挿入したい場所にカーソルを移動します。そして、メニューの 編集マクロマクロ... を選択するとダイアログが表示されるので、リストから挿入したいマクロを選択します。すると、マクロを展開した結果と、簡単な概要が表示され、挿入 でカーソルの位置にマクロが挿入されます。

マクロを挿入するもう一つの方法は、編集マクロマクロの挿入... を選択してから、挿入したいマクロのショートカットキーを押せばマクロが挿入されます。

###### マクロ

マクロ ダイアログ

##### マクロを定義する

マクロの挿入 ウィンドウで 追加 を選択するか、編集マクロマクロの追加 を選択すると、マクロの追加/編集 ウィンドウが表示されます。そこでマクロの名前を入力し、カテゴリを選択、もしくは定義してからショートカットを入力します。次にマクロの中身となるテキストを入力します。ここで' | 'はマクロが挿入された後のカーソル位置です。入力が終わったら、OK をクリックします。これでマクロが一覧に追加されます。

一覧からマクロを選んで 削除 を選択し、マクロを削除する事もできます。この操作は(もちろん)ユーザが定義したマクロが対象となります。

同様に一覧からマクロを選択して、編集 でマクロを編集することができます。

###### マクロの追加/編集

追加/編集 ダイアログ

##### マクロ キーワード

マクロではキーワードが使用できます。キーワードはマクロの定義で使用され、' @ 'で囲って指定します。

使用可能なマクロには、@DATE_TIME@、@DATE_YMD@、@DATE_Y@、@USER_NAME@、@FILE_NAME@、@FILE_NAME_UP@、@FILE_NAME_UP_PREFIX@、@EMAIL@、@TABSIZE@、@INDENTSIZE@、@USETABS@　があります。

###### キーワードを使用したマクロ

キーワードを使用したマクロ

### ファイルのオープンとセーブ

1. ファイルのオープン: ファイルを開く方法は、メニューから ファイルオープン を選択する、ツールバーの オープン ボタンをクリックする、CtrlO キーを押す、等の方法があります。これらの操作を行うと、ファイルを開く ダイアログが表示されます。

   #### ファイルのオープン ダイアログ

   ファイルのオープン ダイアログ ファイルを選択、もしくは開きたいファイル名を入力して、オープン を押して、ファイルをオープンすることができます。一度に複数のファイルを開く場合は Ctrl キーを押しながら、オープンしたいファイルを選択して オープン をクリックします。キャンセルする場合は、キャンセル でファイルのオープンをキャンセルすることができます。

   #### ファイル ダイアログから複数のファイルを開く

   ファイル ダイアログでの複数ファイル選択モード

   ファイルのオープンダイアログで右クリックすると表示されるポップアップメニューで、隠しファイルを表示するというオプションを選択できます。このオプションを選択すると、ファイルの一覧に隠しファイル("."で始まるファイル)が表示されるようになり、オプションを非選択にすると隠しファイルが表示されなくなります。ファイル オープン ダイアログには、あらかじめ用意されたファイル タイプのフィルターがあります。フィルターを適用することにより、選択したタイプのファイルだけが表示されるようになります。

2. ファイルの保存: ファイルを保存するには、メニューから ファイル保存 を選択するか、ツールバーの 保存 ボタンをクリックする、CtrlS キーを押す、等の方法があります。これらの操作を行うことにより、ファイルを保存することができます。保存するファイルが新規に作成したファイルの場合は、別名で保存 ダイアログが表示されます。そこでファイル名を入力して 保存 をクリックすれば、入力した名前でファイルが保存されます。 別名で保存

   #### ファイルの自動保存

   Anjuta の自動保存を有効にしていても、新しいファイルは自動保存されません。新しいファイルは最初に自分で保存しなければなりません。同様に すべて保存 を選択した場合も、新しいファイルについては最初に自分で保存していなければ保存されません。新しいファイルに対してオートセーブや すべて保存 を実行する場合は、最初の保存を自分で行う必要があります。

3. 別名でファイルを保存: 既存のファイルを別の名前で保存できます。やり方は、ファイル別名で保存 をメニューから選択して表示される、別名で保存 ダイアログで別の名前を入力して、保存 をクリックします。

   #### ファイルの上書き保存

   既に存在するファイルを 別名で保存 で保存した場合、元のファイルはその前に保存した状態のままになります。すでに存在するファイル名を指定した場合は確認ダイアログが表示されるので、はい をクリックすれば、既存のファイルを上書きして保存することができます。

4. ファイルを閉じる: ファイルを閉じる場合は ファイル閉じる をメニューから選択するか、ツールバーの 閉じる ボタンをクリックします(ファイル名タブのXをクリックする方法もあります)。この操作によりファイルを閉じることができます。ファイルがまだ保存されていない場合や新しいファイルの場合、Anjuta はファイルを閉じる前に保存するかどうか確認を求めます。

### ファイルの編集

Anjuta にはソースの編集と、それにまつわる作業を助ける、さまざまな機能が用意されています。以下のセクションでは、利用可能なそれらの機能のうちから興味深いものを説明します。

#### エディタの余白

エディタの余白: エディタの左側の余白は特別な目的のために使用されます。利用可能な余白には、行番号の余白、マーカーの余白、そして 行折り畳みの余白 があります。デフォルト(はじめて Anjuta を実行したとき)では、行折り畳みの余白 のみが有効になってます。他の2つは 表示エディタ で有功にすることができます。

##### エディタの余白

タグ ツールバー

行番号の余白 は3つの余白のうちで一番広く(そして他に比べて少し暗い色で)表示されます。 行番号の余白 の表示/非表示は、表示エディタ行番号の余白 で切り替えることができます。この余白を左クリックして、行末の改行を含む行全体を選択することができます。行番号の余白のフォントは設定で変更することが可能です。

マーカーの余白 の表示/非表示は、表示エディタマーカーの余白 で切り替えることができます。このマーカーは、該当する行の一般的な情報を表示します。例えばブックマーク マーカー(青い四角)、ブレークポイント マーカー(赤い丸印)、そしてラインインディケーター　マーカー(黄色い矢印)などです。ブックマーク　マーカーはその行にブックマークが設定されていることを示していて、ジャンプブックマークブックマークのON/OFF で、カーソルに対するブックマークのON/OFFを切り替えることができます。ブレークポイント マーカーはデバッガにより使用され、その行にブレークポイントが設定されていることを示します。(詳細はデバッギングのセクションを参照してください)。ラインインディケーター マーカーは、デバッガで実行中のプログラムのどのラインが実行中なのかを示します。

コード折り畳みの余白 は折り畳み用のツリーが表示されている部分です。折り畳み用のツリーのノードをクリックすることで、コードブロックの折り畳みのON/OFFを切り替えることができます。折り畳まれたブロックに該当する行にはアンダーラインが引かれ、その行には折り畳まれて表示されていないコードブロックが存在することがすぐにわかるようになっています。コードの折り畳みについての詳細は後述の コードの折り畳みセクションを参照してください。

##### マーカーの余白が非表示のとき

マーカーの余白が非表示になっている場合、Anjuta は行のバックグラウンド色を変えることでマーカーを表示します。例えば、もしブレークポイント マーカーが設定されていてマーカーが非表示となっている場合、その行のバックグラウンドは赤色に設定されます。同様にブックマーク マーカーとラインインジケーター マーカーの背景色はそれぞれ青色、黄色に設定されます。この設定が気に入らない場合(あるテーマを選択している場合など)は、表示エディタマーカーの余白 でマーカーを表示することができます。

##### マーカーの余白が非表示の時のエディタ マーカー

タグ ツールバー

#### エディタ ガイド

エディタには インデントのガイド、ホワイトスペース、行末の文字 などの、通常は非表示になっている情報を表示する機能があります。それらの情報は、 表示エディタ で表示/非表示を切り替えることができます。インデントのガイドはソースの括弧にあわせて点線で表示されます。またカーソルを括弧に合わせると、点線で表示されたインデントのガイドがハイライト表示されて、インデントのレベルを視覚的に強調表示します。

##### エディタのガイド

エディタのガイド

#### 構文のハイライト

Anjuta は、多くの言語の異なる構文をハイライトすることができます。これは通常、ファイルの拡張子により自動的に決定されます。Anjuta がファイルのタイプを判別できなかったときは構文のハイライトは行われません。強調表示のスタイルは、メニューの 表示エディタ強調表示モード で明示的に指定することができます。

Anjuta は `$prefix/share/anjuta/properties/anjuta.properties` というプロパティ ファイルを使用します。このファイルはすべてのプロパティを含んでいるわけではありませんが、SciTE のプロパティ ファイルと同じ書式を使用しています。すべての言語のスタイル要素は、`$prefix/share/anjuta/properties/styles.properties` というファイルで定義されています。また、このファイルでは `$home/.config/anjuta/scintilla/editor-style.properties` というファイルで、Anjutaにより定義された共通プロパティを使用しています。

#### コードの折り畳み

Anjuta はソースファイル中にブロック構造を持つ言語(C、C++、Pascal、Javaなど)に対して、コード折り畳み の機能を提供します。ソースファイルのコードブロックは、エディタ ウィンドウの、コード折り畳み余白 の 折り畳みポイント(通常は+/-記号か上矢印/下矢印)をクリックして、折り畳みの ON/OFF を切り替えることができます。コードの折り畳み ポイントはコードブロックを持つソースファイルで自動的に表示されます。

コードの折り畳み機能は、何千行ものソースファイルを編集するときなどに特に有効です。一旦コードを折り畳めばドキュメントは一見小さくなるため、表示、編集が容易になります。

コードの折り畳みとエディタガイドは、Scintilla ベースのエディタでのみ有効な事に注意してください。

#### ソースコードのオートフォーマット

Anjuta は C、C++のソース、およびヘッダファイルに対するオートインデント(オートフォーマット)が可能です。この機能によりソースは見やすく、可読性が増し、シンタクス エラーが軽減され、結果として大きな時間の節約になります。編集中の文書に対してオートインデントを実行するには、メニューから 編集オートインデント を選択します。フォーマットのスタイルは設定でカスタマイズすることが可能です。

### シンボル ブラウザ

C、C++のソース、およびヘッダファイルに対して、ファイルの中のtagを使用してブラウズすることができます。tag(もしくはシンボル)は関数、定義、構造体、マクロのような名前を持ったエンティティを参照します。Anjuta はオープンしている C、C++ のソース、およびヘッダファイルをスキャンして、利用可能なtagを生成します。

Anjuta は、tag 生成のために、オープンしているプロジェクトのすべてのソース、およびヘッダファイルを自動的にスキャンします。これにより、あなたは自分でファイルをオープンすることなく関数、構造体、クラスの定義にジャンプすることができます。あなたは tag がどのファイルで見つかったか知る必要さえありません。シンボル ブラウザはプロジェクトの使用可能なシンボルを一覧で表示します。

#### シンボル ブラウザ

シンボル ブラウザ

#### タグの同期

Anjuta がすべて面倒を見るので、あなたは tag データベースの同期や更新について心配することはありません。あなたはどの tag を使用して移動するかを決定するだけです。

### テキストの検索と置換

#### 検索

編集中のファイルから 文字列、もしくは 正規表現 を検索するには 編集検索検索と置換 を選択するか、CtrlAltF キーを押します。この操作により 検索と置換 ダイアログが表示されます。

テキストボックスに検索する文字列を入力し、その文字列が通常の文字列か正規表現なのかを選択してください。また、検索する方向、大文字小文字を区別するか、検索する範囲を入力します。そして検索 をクリックすれば検索が開始されます。

検索が成功した場合、Anjuta はマッチしたテキストにジャンプするか、別のアクション(あなたが 検索する対象 タブで選択した 検索アクション )を実行します。検索が失敗した場合は、Anjuta は検索文字列が見つからなかったことを示すメッセージを表示します。

再検索したいときは、検索 ボタンを再度クリックするか、CtrlG を押します。これにより次のマッチ( ShiftCtrlG を押した場合は、前のマッチ)を検索します。これらの検索中、検索ダイアログの 検索式 に新しいテキストを入力することもできます。

##### テキスト検索 ダイアログ

長時間の検索をストップする場合は、停止 ボタンをクリックします。

#### 検索範囲の指定

検索する対象 タブで、検索する場所と検索が成功した場合のアクションを指定します。

アクションの回数は指定することが可能です。

##### 検索する対象 ダイアログ

どこのテキストを検索するのか指定することが可能です。

##### 検索する対象の選択

##### ファイル内の検索

プロジェクトからテキストを検索する場合は、検索する場所 でプロジェクトのすべてのファイルを指定します。

検索式 タブで検索したいテキストを入力し、大文字小文字の区別、単語全体に一致 等の検索オプションを指定して、検索 をクリックすれば検索が開始されます。

複数のファイルに対して検索を行う場合は、検索する場所 でファイル名のパターンを指定し、他の検索オプションを指定して 検索 をクリックします。

###### 検索ファイルのパターン

#### 検索アクションを指定

検索が成功したときにどのアクションが実行される選択することができます。

選択(検索する場所、検索する方向 など)によっては、いくつかのアクションは実行できません。

##### 検索する対象へのアクションの選択

#### 検索

検索と置換はテキストを検索するという意味では似ていますが、置換するテキストを 次で置換する テキストボックスで指定できる点と、2種類の置換(次のマッチを置換、すべてのマッチを置換)のどちらを用いるか入力を求める点が異なります。

##### 検索

マッチしたテキストを置換する場合は 置換 を選択し、次にマッチするテキストへジャンプするには 検索 を選択します。

#### 検索設定

検索オプションは保存することができます。

赤字でハイライト表示されているのは現在の検索の設定です。既定にチェックをいれると、その設定は Anjuta が実行された際に検索の設定としてロードされます。

##### 検索の設定 ダイアログ

### ファイルの印刷

ファイル印刷プレビュー で印刷のプレビューを行うことができます。これにより編集中のファイルの印刷プレビューが表示されます。ソースコード中でハイライト表示された箇所は、プレビュー(および印刷)でも同様に表示、印刷されます。エディタのプラグイン設定の 印刷 タブでは行番号、行ラップ、ページヘッダなどを追加オプションを指定できます。

#### C ファイルの印刷プレビュー

印刷プレビュー

#### 印刷設定

印刷設定

印刷の準備ができ、プレビューの結果にも満足できたら ファイル印刷、またはプレビュー ウィンドウの 印刷 を選択します。これにより、下記のような印刷 ダイアログが表示されます。このダイアログで適切な印刷パラメータを設定し、印刷 をクリックすることによりファイルが印刷されます。

レイアウトの縦横、用紙サイズ、種類なども設定可能です。正しく印刷するためにも、あなたのプリンタに適した設定で印刷してください。

#### 印刷 ダイアログ

印刷 ダイアログ

## プロジェクト管理

Anjuta には大部分の automake/autoconf ベースのプロジェクトを取り扱える、強力なプロジェクト管理 プラグインがあります。"不思議" な設定のプロジェクトでは失敗するかもしれませんが、automake/autoconf を通常の方法で使用しているプロジェクトについては上手く機能するはずです。

素敵な事に Anjuta はプロジェクトの構造を越えた事項についての情報を保有しません。Anjuta により分割管理されるプロジェクトのデータは存在せず、すべてのプロジェクトはプロジェクト構造にしたがって直接処理されます。これにより Anjuta 以外で管理、開発されたプロジェクトと、Anjuta プロジェクト独自の書式への変換といった処理が不要です。Anjuta のプロジェクトが単なる automake のプロジェクトであるという理由により、混成開発( Anjuta ユーザと非Anjuta ユーザの混成)や、Anjuta と Anjuta 以外の外部ツールの交互使用が妨げられることはありません。

### プロジェクトの新規作成

#### テンプレートからプロジェクトを作成する

プロジェクト ウィザードのプラグインには autogen と呼ばれる強力なテンプレート処理エンジンが使用されています。テンプレートから作成されるすべての新規プロジェクトのテンプレートは、autogen のシンタクスにしたがって記述されています。プロジェクト ウィザードはプロジェクト テンプレートの選択にしたがってプロジェクトを作成します。選択肢はシンプル、かつ一般的で単一階層(サブディレクトリはありません)であり、GTK+、GNOME、Java、Python等のプロジェクトがあります。テンプレートは単なるテキストファイルなので、新しいテンプレートを簡単にダウンロード、インストールできます。

プロジェクトを作成するには、メニューから ファイル新規プロジェクト を選択してアプリケーション ウィザードを開始します。最初のページを注意深く読んだ後に、進む をクリックしてください。

次のページであなたが作成したいアプリケーションの種類を選択し、進む をクリックします。

次のページでプロジェクトに必要なすべての詳細を入力します。ここで入力する情報は後から変更することもできますが、プロジェクトの一貫性を保つためにも最初に正しい情報を入力することをおすすめします。空白やいくつかの非英文字はアンダースコア(_) ハイフン(-)を除いて、以下で説明する多くのエントリーで使用できません(作者 テキストボックスを除きます)。

プロジェクトが gettext (詳細は gettextのinfoファイル を参照)を使用した、国際化のサポート を行うか指定できます。これにより、あなたのプロジェクトが英語、フランス語、オランダ語といった、異なる言語に対する多言語をサポートするかを指定できます。他にはライセンスとして GNU の一般公衆利用許諾契約書をファイルの冒頭に記載するか、GNOME デスクトップメニューを有効にする必要があるか、等が指定できます。共有ライブラリのサポートを有効にすれば後で共有ライブラリを追加することができます。もし、あなたのプロジェクト自身でライブラリを作詞する予定があるならば、有効にしておくとよいでしょう。プロジェクトの種類によっては Anjuta はさらに追加の情報を求めます。

最後のステップであなたが提供した情報を確認します。適用 をクリックするとプロジェクトが作成されます。

プロジェクトが作成されたら、ビルド、実行を試すことができます。

#### プロジェクトのインポート

プロジェクトのインポートは、既に存在するプロジェクトを Anjuta のプロジェクトにインポート、変換する機能です。ファイル新規既存のソースからプロジェクトを作成する を選択してインポート プロジェクト ウィザードを開始して、ウィザードの指示にしたがいます。一度プロジェクトがインポートされれば、他の Anjuta プロジェクトと同様に、Anjuta でオープンすることができます。

プロジェクトのインポートは、インポートする既存のプロジェクトがautoconf/automake を使用している、単一の Makefile を使用している、といった限定的なプロジェクトのみに有効な機能です。

### プロジェクトのロードとセーブ

#### プロジェクトのロード

プロジェクトを開くには、メニューから ファイル開く… を選択します。ダイアログでプロジェクトのファイル( `*.anjuta` )を選択して 開く をクリックします。

もしプロジェクトを最近開いたことがある場合は、メニューの ファイル最近開いたファイル で表示される一覧からプロジェクトのファイル名を選択すれば、プロジェクトを開くことができます。

プロジェクトを開くと、Anjuta が プロジェクトモード へと遷移します。プロジェクトウィンドウには3つのペインがあります。1つ目はプロジェクトペインで、プロジェクトのファイルを種類別に一覧表示します。2番目はシンボルブラウザで、既に シンボルブラウザ のセクションで説明しました。3番目はファイルビューで、プロジェクトのファイルを表示する小さなファイルマネージャといったところです。ファイルビューではプロジェクトのツリーのすべてのファイルが表示されます。これらのファイルを右クリックして表示されるコンテキストメニューからファイルに対する操作を行うことができます。

もしプロジェクトが CVS ツリーを持つ場合は、ファイルのリビジョン ナンバーがファイル ビュー ペインのファイル名の右側に表示されます。

#### プロジェクトの保存

すべての変更はプロジェクト構造に直接変更をもたらすため、プロジェクトを閉じるときには自動的に保存されます。

### プロジェクトの構造

これは プロジェクト ウィンドウ とコンテキスト メニュー(マウスの右クリックで表示)です。

#### プロジェクト ウィンドウ

プロジェクト ウィンドウ

プロジェクト ウィンドウ では、ターゲットのグループ という automake の階層構造にしたがってプロジェクトが表示されます。グループはプロジェクトのディレクトリに、ターゲットは通常の automake のターゲット(makeのターゲットと混同しないでください)に相当します。プロジェクト ウィンドウ は2つのパートからなります: 下部はプロジェクトの完全な階層を表示し、上部は重要なターゲットのディレクトリを一覧表示します。重要なターゲットには実行可能ファイルとライブラリのターゲットが含まれます; ビューはそれらへのアクセスを容易にします。この機能は階層が深く、ツリーだけでは操作が困難な大きなプロジェクトで特に有用です。ターゲットはソースファイルから成り立っています。

- グループ はターゲットを論理的に組織化するために使用されます。プロジェクトは複数のグループを持つことができます。それぞれのグループはターゲット、サブグループを持つことができます。automake のプロジェクトでは、グループはプロジェクトの単なるサブディレクトリに過ぎません。トップレベルのグループは常に"/"で識別されます。

- ターゲット とは、プロジェクトのプログラム(実行可能バイナリ)、スクリプト、ライブラリ、その他のデータ等、ビルドの対象となるターゲットのことです。すべてのターゲットがソースからビルドされるわけではありません; あるターゲットはソースを組織化するためだけのものであり、物理的には存在しません。 (例 その他のデータ ターゲット)。ターゲットはグループに属します。使用可能なすべてのターゲットについては、"ターゲットの追加" を参照してください。

- ソースファイル には、単にターゲットに含まれるだけというソースファイルものもありますが、基本的にはターゲットをビルドするために使用されます。これらは必ずターゲットに属しています。多くのターゲットではソースファイルの種類が限定されています(例 プログラム、およびライブラリ ターゲット)。しかし、なかには任意のファイルを含むことができるターゲットもあります(例 その他のデータ ターゲット)。

プロジェクトのグループとターゲットは、標準の automake のやり方で設定が可能です。それぞれのターゲットに対してコンパイラとリンカに対するオプションを直接指定するか、configure の変数にセットすることもできます。また、グループごとにグループのターゲットのインストール先を設定することができます。

ファイル マネージャと同様に、プロジェクト マネージャ(のコンテキスト メニュー)からソース ファイルとターゲットに適切な操作を行うことができます。

多くのコマンドライン ツールでプロジェクトの維持、管理が可能です。しかしそれらのツールはそれぞれ独自のルールと特性を持っています。Anjuta はプラグインにより大部分の共通な操作が自動化されていますが、場合によってはあなたが手動で行わなければならない操作もあるでしょう。

あなたが外部ツール、もしくは自分の手でプロジェクトのファイルを編集したとします。ここでプロジェクトが Anjuta にロードされている如何は関係ありません。Anjuta はプロジェクトに対して外部から与えられた変更に対して自分自身で更新を行います。

### グループとターゲット

#### グループの追加

グループの追加(automake ベースのプロジェクトへのディレクトリ追加)

automake のプロジェクトでは親となるグループのディレクトリ配下に、指定した名前のディレクトリが作成されます。

プロジェクト ウィンドウから直接グループを追加することもできます。グループを追加するグループを右クリックして、コンテキスト メニューから グループの追加 を選択します。

#### グループの削除

グループの削除:

- プロジェクト マネージャ ビューでグループを右クリックします。

- コンテキスト メニューから 削除 を選択します。

グループに含まれるターゲット、およびソースはプロジェクトから削除されます(ファイルシステムから削除されるわけではないので、もし望むなら後で再びプロジェクトに追加することもできます)。

#### ターゲットの追加

ターゲットの追加:

- プロジェクトターゲットの追加 を選択してターゲットを追加するためのダイアログを表示します。

- 新たにターゲットを追加するグループを選択します。

- ターゲットの種類を選択します。

- 新しいターゲットの名前を入力して 追加 をクリックします。

プロジェクト ウィンドウから直接ターゲットを追加することもできます。ターゲットを追加するグループを右クリックして、コンテキスト メニューから ターゲットの追加 を選択します。

ターゲットの種類によりターゲット名には通常、標準的な接頭もしくは接尾語が要求されます。あなたが入力した名前がこの要求を満たしていない場合、Anjuta は警告を表示して適切な名前の例を表示します。

automakeプロジェクトのターゲット タイプ:

- プログラム ターゲットは実行可能バイナリのためのターゲットです。プロジェクトに実行可能バイナリを追加したい場合はこの種類を選択してください。デフォルトでは、すべてのプログラム ターゲットは/usr/bin、/usr/local/binのような標準的な実行可能バイナリ用ディレクトリにインストールされるようになっています。ターゲットを含むグループのプロパティにより、異なるディレクトリにインストールされるように変更することができます。

- 共有ライブラリ ターゲットは共有ライブラリ、または動的ライブラリのためのターゲットです。プロジェクトに共有ライブラリを追加したい場合はこの種類を選択してください。デフォルトでは、すべての共有ライブラリ ターゲットは/usr/lib、/usr/local/libのような標準的なライブラリ用のディレクトリにインストールされるようになっています。ターゲットを含むグループのプロパティにより、異なるディレクトリにインストールされるように変更することができます。

- 静的ライブラリ ターゲットは静的ライブラリのためのターゲットです。プロジェクトに静的ライブラリを追加したい場合はこの種類を選択してください。デフォルトでは、すべての静的ライブラリ ターゲットは/usr/lib、/usr/loca/libのような標準的なライブラリ用のディレクトリにインストールされるようになっています。ターゲットを含むグループのプロパティにより、異なるディレクトリにインストールされるように変更することができます。

- Java モジュール ターゲットは、Java モジュールのためのターゲットです。Java のソースをモジュールにグループ化したい場合はこの種類を選択してください。このターゲットに対しては .class ファイルをどこにインストールするかを指定する必要があります。指定した値はターゲットを含むグループのプロパティに設定されます。

  グループにはただ1つだけの Java モジュールを含めることができます。これは automake による制限です。詳細は automake の info ファイルを参照してください。

- Python モジュール ターゲットは、Python モジュールのためのターゲットです。Python のソースをモジュールにグループ化したい場合はこの種類を選択してください。このターゲットに対してはソースをどこにインストールするのか指定する必要があります。指定した値はターゲットを含むグループのプロパティに設定されます。

- スクリプト ターゲットはスクリプトをグループ化するためのターゲットです。これらは標準的な実行可能ディレクトリにインストールされます。

- その他のデータ ターゲットは単純なファイルをグループ化するためのターゲットです。このターゲットに対してはグループのプロパティにインストール先のディレクトリを指定する必要があります。

- ヘッダ ファイル ターゲットは(例 APIライブラリの一部として)システムにインストールする必要がある、C/C++ のヘッダ ファイルをグループ化するためのターゲットです。(インストールする必要がないヘッダ ファイルは、プログラム ターゲットのソースに含めます。)グループのプロパティに特に指定しなければヘッダ ファイルはシステムの標準のインクルード ディレクトリにインストールされます。

- Man ページ ターゲット、Info ファイル ターゲットは、man、およびinfo 文書をグループ化するためのターゲットです。デフォルトでは、それら文書ファイルはそれぞれの標準的なインストール ディレクトリにインストールされます。

#### ターゲットの削除

ターゲットの削除:

- プロジェクト マネージャ ビューでターゲットを右クリックします。

- コンテキスト メニューから 削除 を選択します。

ターゲットに属するソースはプロジェクトより削除されます(ファイルシステムからは削除されません)。

### ファイルの追加と削除

#### ソースファイルの追加

メニューから プロジェクトソースの追加 を選択します。ダイアログでファイルを追加するターゲットと、追加するファイルを選択します。ファイルの選択 ダイアログで Shift、または Ctrl キーを使用して複数のファイルを選択することにより、複数のファイルを一度に追加することができます。追加 をクリックするとファイルがプロジェクトに追加されます。

デフォルトでは、ダイアログの追加するファイルとして、エディタで編集中の文書が選択されます。他の便利なやり方として、ファイル マネージャ を右クリックして表示されるコンテキスト メニューで プロジェクトへ追加 を選択する方法があります。

既にプロジェクトに属するファイルを追加しても、Anjuta がそのファイルを再度プロジェクトに追加することはありません。かわりにそのファイルが既にプロジェクトに追加されているという警告を表示します。

プロジェクトに追加するファイルがプロジェクトのディレクトリ配下に存在しない場合、ファイルをターゲットのディレクトリ配下にコピーしてもよいか確認を求められます。Anjuta はターゲットのディレクトリ配下に存在しないファイルをプロジェクトに追加することはできません。

#### ソースファイルの削除

ファイルをプロジェクトから削除するには、削除したいファイルを プロジェクト ウィンドウ で右クリックして、表示されたコンテキスト メニューから 削除 を選択します。

確認ダイアログが表示され、ファイルはプロジェクトから削除されます。

##### ファイルそのものは削除されません!

ファイルがファイルシステムから削除されるわけではありません。ファイルは削除されずにそのまま残るので、もし後でファイルを追加したいと思ったときは再度プロジェクトに追加することができます。ファイルは単にプロジェクトから削除され、プロジェクトの一部としてコンパイル、ビルド、配布されなくなるというだけです。

### プロジェクトの設定

プロジェクトの設定には、ターゲット、グループ、そしてプロジェクト自身を正しくビルドするためのフラグが含まれます。これらのフラグはプロパティ ダイアログにより設定することができます。

プロジェクトの設定で自動的に設定された autoconf、および automake の変数を自由に使うことができます。これらの自動的に設定された変数に加えて、プロジェクトのプロパティであなた自身の変数を定義、使用することができます。これにより、後でフラグの値を更新するとき、特に複数のターゲットで使用されている変数に対する更新が簡単になります。

以下によく使用する変数を一覧します。完全な一覧は automake の infoファイル を参照してください。

- $(prefix): インストールでベースとなるディレクトリです。プロジェクトは prefix で指定したディレクトリ配下のサブディレクトリとしてインストールされます。デフォルトでは、/usr/local になっています。

- $(bindir): 実行可能バイナリをインストールするディレクトリです。すべての実行可能ファイル、およびスクリプトはこのディレクトリにインストールされます。デフォルトでは、$(prefix)/bin になっています。

- $(libdir): ライブラリをインストールするディレクトリです。すべてのライブラリ ターゲット (共有、および静的ライブラリ)は、このディレクトリ、もしくはこのディレクトリのサブディレクトリにインストールされます。デフォルトでは、$(prefix)/lib になっています。

- $(module_CFLAGS)、および$(module_LIBS): configure がパッケージのために設定するフラグです。プロジェクトで使用されているパッケージは プロジェクトのプロパティ で設定されます。'モジュール'とは、以下で説明するプロジェクトのプロパティで指定したパッケージのグループです。

#### プロジェクトのプロパティ

プロジェクトのプロパティ ダイアログはメニューから プロジェクトプロパティ を選択することにより表示されます:

- パッケージ名、バージョン、URLを 全般 ページで設定します。ここで設定した値は configure の変数として使用されます。URL はプロジェクトのバグの報告先を設定します。

- プロジェクトの依存情報の追加と削除は、パッケージ ページで設定します。詳細は以下を参照してください。

- 他にもグループ、およびターゲットで使用する設定可能な変数を 変数 ページで作成できます。

依存関係とはプロジェクトと、プロジェクトをビルドするために必要とする外部パッケージとの関係のことです。ここで指定できるパッケージは、pkg-config によりインストールされるパッケージだけです。その他のパッケージについては、configure.ac を直接、手で編集します。

##### プロジェクトのプロパティ ダイアログ

プロジェクトのプロパティ ダイアログ

外部パッケージに対する依存関係は モジュール にグループ化されるので、グループ化されたビルド フラグを異なるターゲットに適用することができます。モジュール はパッケージからなる任意のグループであり、任意の名前を付与することができます(英数文字、および'_'のみが使用できます)。通常は、モジュールを使用するターゲット名を先頭に表記した名前をつけます。したがって、ターゲットが1つだけの通さなプロジェクトでは1つのモジュールがすべての依存関係を保持します。

パッケージは コンパイラ フラグ と ライブラリ をエクスポートします。それらは、モジュールに属するすべてのパッケージからエクスポート、および集約されて configure の $(module_CFLAGS)、$(module_LIBS) 変数として定義されます。それらの変数は グループのプロパティ、ターゲットのプロパティ から使用できます。

パッケージの依存関係の追加:

- プロジェクトプロパティ によりプロジェクトのプロパティ ダイアログが表示されます。

- パッケージ タブを選択することによりパッケージ ページが表示されます。

- パッケージを追加する モジュール を選択します。まだモジュールが作成されていない、または適当なモジュールが存在しない場合は、モジュールの追加 をクリックして、モジュールに適切な名前を入力します。configure の他の名前との衝突を避けるためにも、できるだけ大文字の名前(英数文字、および'_'のみが使用可)を入力して Enter キーを押下するとモジュールが作成されます。

- パッケージの追加 をクリックすることによりパッケージの選択 ダイアログが表示されます。

- 追加するパッケージを選択して 追加 をクリックします。

- 閉じる をクリックしてプロパティ ダイアログを閉じます。

#### グループのプロパティ

グループのプロパティを編集するには、プロジェクト ウィンドウのグループをダブルクリックして グループのプロパティ ダイアログを表示します(かわりにグループを右クリックして表示されるコンテキスト メニューから プロパティ を選択することもできます)。

##### グループのプロパティ ダイアログ

グループのプロパティ ダイアログ

グループに設定したプロパティは、所属するすべてのターゲットに適用されます。そのため、グループに設定したコンパイラ、およびリンカ フラグは、グループに所属するすべてのターゲットに対するフラグの一部となります(フラグはターゲットごとに指定することができます)。以下の項目はグループのプロパティ ダイアログで設定できる項目です。

- インクルード: C、およびC++ ターゲットのためのインクルード ディレクトリを設定します。ここでは、-I/usr/include/blah のようにコンパイラに与えるオプションを完全な形で指定します。インクルード パスはあなたのソースファイルがヘッダファイルを見つけるために使用されます(他のコンパイラ フラグもここで設定することが可能ですが、以下で説明する コンパイラ フラグ で設定するほうが好ましいでしょう)。

- コンパイラ フラグ: コンパイラに指定するフラグを設定します。ここでは異なるコンパイラごとにコンパイラ フラグを設定するための入力が用意されています。コンパイラに指定するフラグはここで設定できます。C/C++ のためのデフォルトのコンパイラは、gcc/g++(GNU C コンパイラ)です。詳細は gcc の infoファイル を参照してください。

- インストール先: グループに含まれる、インストール先のディレクトリを必要とするターゲットが表示されます。インストール先のディレクトリには$(prefix)、$(bindir)、$(libdir)、または$(datadir) のような automake のディレクトリ変数が使用されます。

#### ターゲットのプロパティ

ターゲットへのプロパティの設定は、そのターゲットに対してだけ有効になります。また、ターゲットは所属するグループのプロパティを継承します。

ターゲットのプロパティを設定するには、プロジェクト ウィンドウ のターゲットをダブルクリックしてターゲットのプロパティ ダイアログを表示します。(かわりにターゲットを右クリックして表示されるコンテキスト メニューから プロパティ を選択することもできます)

##### ターゲットのプロパティ ダイアログ

ターゲットのプロパティ ダイアログ

特定のターゲットに対して、プロジェクトのプロパティ で追加したモジュールを追加することができます。モジュールを追加するには、モジュール名の横のチェックボックスにチェックを入れるだけです。これにより、自動的にターゲットへのインクルードとリンカ フラグが追加され、ターゲットでのモジュールの使用が可能になります。

##### 上級者用のターゲット オプション

以下の項目はターゲットのプロパティ ダイアログの 拡張 で設定できる上級者向けのターゲット設定です。

###### ターゲットのプロパティ ダイアログ

ターゲットのプロパティ ダイアログ

- コンパイラの設定: コンパイラ特有のフラグを設定します。ここでは異なるコンパイラごとの項目の設定ができます。ここでは実際にコンパイラに与えるフラグを完全な形で指定します。C/C++ のデフォルトのコンパイラは、gcc/g++ (GNU C コンパイラ)です。詳細は gcc の infoファイル を参照してください。

- リンカ フラグ:ターゲットをリンクする際のフラグを指定します。このフラグはプログラム ターゲット、およびライブラリ ターゲットだけに指定できます。使用可能なリンカのオプションについては ld の infoファイル を参照してください。

- ライブラリ: ターゲットが依存するライブラリを設定します。

## ビルド

Anjuta　は autotools のプロジェクトを取り扱います。ユーザが記述した　Makefile　によるプロジェクトといった、他の種類のプロジェクトを処理することも可能ですが、現行のビルド インターフェースは、autotool によるプロジェクトを対象としています。autotool に対する知識は、プロジェクトがビルドされる方法を理解するために役に立ちます。

autotool のプロジェクトのビルドは3ステップで行われます:

1. 生成

2. Configure(構成)

3. ビルド

ビルド は、ソースファイルからすべてのターゲットを構築する主要なステップです。それらは コンパイル、および リンク という、2つのサブフェーズに分けることができます。コンパイル のフェーズでは、ソースファイルからそれぞれ対応するオブジェクト ファイルが生成されます。例えば、コンパイルにより `hello.c` というソースファイルから `hello.o` というオブジェクト ファイルが生成されます。通常はそれらのオブジェクト ファイルは単なる中間ファイルとみなして構いません。リンク のフェーズでは、すべてのオブジェクト ファイルとライブラリが互いにリンクされて、最終的に実行可能ファイルが作成されます。いくつかのプログラム言語では コンパイル、およびリンク のフェーズは必要ありません。さらに ビルド のステップでは、そのようなコンパイル、リンクを必要としないドキュメント等、その他のファイルも生成されます。

構成 はソース ツリーをあなたのシステムに適合させるステップです。 autotool のプロジェクトは、異なるコンパイラ、ライブラリ機能を持つシステムの多くでビルドすることができます。このステップでは `configure` と呼ばれるスクリプトを実行することにより、 あなたのシステムが持つさまざまな特徴をチェックして、ビルドを行うために必要となるいくつかのファイル( `Makefile` や `config.h` 等のファイル)を作成します。また、このステップでは、例えばデバッグを容易にするために最適化を無効にする、実験的な機能を無効にする、等のビルド オプションの選択も行われます。

生成 のステップでは、`configure` スクリプトと、その他の関連するファイルが作成されます。`configure` スクリプトには、さまざまなシステムで実行され、多くのことをチェックするという役割があります。これを手で記述するのはとても困難です。さらに、autotool は、例えば配布物に `NEWS` と `COPYING` のような義務的なファイルを含めるというような、プロジェクトの組織的ルールにしたがう必要があります。autotool には開発者が記述する `configure.in` (または `configure.ac` )や `Makefile.am` のような簡単なファイルから、必要なファイルを作成するためのツールが含まれています。それらのツールは通常、プロジェクト ディレクトリの `autogen.sh` という名前のスクリプトから呼び出されます。このステップは、`configure` スクリプトがソースファイルのみに依存するものであり、配布物に含まれるということから、開発者(ソースファイルを変更する人)にとって有益なステップです。configure で作成された Makefile には必要に応じてプロジェクトを再生成するルールがいくつか含まれているため、configure を実行しなくてもよい場合があることに注意してください。

これらのツールがどのように機能するかの詳細はautomake、および autoconf の info ページを参照してください。

### 生成と構成

#### プロジェクトを構成する

プロジェクトをビルドする場合、まずこのステップを実行する必要があります。通常、このステップは最初のビルドを行う前 － 例えば、プロジェクトの配布物である tarball ファイルを解凍した直後など － に1回だけ実行する必要があります。これにより作成された構成は、その後に続くビルドのステップへと引き継がれます。アプリケーション ウィザード でアプリケーションを作成した場合は、ウィザードがプロジェクト生成処理の一部としてこれらのステップが実行されるため、あなたがこれらを個別に処理する必要はありません。

このステップは1回しか実行できないというわけではありません。構成のオプションが変更されたときなど、必要に応じて実行することができます。トップ レベルのディレクトリにある`config.h`に変更が加えられていた場合は、 `configure`を再度実行してもそのファイルは上書きされないことに注意してください。

生成と構成のステップはどちらも、ビルドプロジェクトの構成… から行うことができます。このメニューで表示されるダイアログで選択を行うことができます

- 生成のステップを実行するかどうか

  生成は最初に1回は実行される必要があり、その結果はビルドのプロセスへと引き継がれます。プロジェクトを再生成する をチェックすることで、再度、生成を行うことができます。例えばビルドのためのファイルに多くの変更を加えたことにより、プロジェクトをビルドできなくなってしまったときなどは、これにより再生成することができます。

- 構成の名前

  構成の名前は、それぞれの構成を参照する際に使用されます。いくつかの構成(デフォルト、デバッグ、最適化)はデフォルトの構成として既に定義済みです。1つの構成には、ビルド用のフォルダと構成のオプションが含まれます。

- ビルド用のフォルダ

  ビルド用のフォルダを設定します。デフォルト構成ではプロジェクトのディレクトリと同じになっていますが、autotool は異なるディレクトリでのビルドもサポートしています。

  それぞれの構成は、構成ごとに異なるビルド用のフォルダを設定しなければなりません。そのため、1つの構成がフォルダを使用している場合には、他の構成でそのフォルダを同時に使用することはできません。そのフォルダに対して新しい構成を追加する場合は、まず ビルド構成内容の削除 で構成を削除しなければなりません。

- 構成のオプション

  これらのオプションは `configure` スクリプトに引き渡されます。いくつかは --prefix や CFLAGS のように標準的なオプションであり、それ以外はプロジェクトに依存したオプションです。使用可能な構成オプションの一覧は、`configure` スクリプトの引数に `--help` を指定して実行することで得ることができます。

#### 構成の選択

もし他の構成を作成した場合は、ビルド構成の選択 で選択することができます。

#### 構成内容の削除

プロジェクトを初期化して、構成のステップを実行する前の状態にするには ビルド構成内容の削除 を選択します。これにより `make distclean` が実行され、プロジェクトのクリーン を実行した場合より多くのファイルが削除されます。別の言い方をすると、プロジェクトはあたかも配布用の tarball ファイルを解凍したばかりの状態となります。ビルド用のフォルダは削除されないので、削除したい場合はあなたが自分で削除する必要があることに注意してください。

### コンパイルとビルド

#### ファイルのコンパイル

プロジェクトではソース ファイルは、それぞれオブジェクト ファイル( `*.o` ファイル)にコンパイルされます。オブジェクト ファイルに対して気を遣う必要はないとしても、まずファイルをコンパイルすると便利な場合があります(例えば、シンタクス エラーがないか確認する場合)。プロジェクト全体をビルドするのは、特に大きく複雑なアプリケーションの場合は長い時間がかかります。それゆえ、プロジェクトの開発期間中は編集－コンパイルの操作を何回も行うことでしょう。

ファイルをコンパイルするには、メニューから ビルドコンパイル、または F11 キーを押します。これにより編集中のファイルがコンパイルされます。

#### 実行可能ファイルのビルド

Anjuta にはリンクに対するコマンドは用意されていません。それは単に必要ないからですビルドの処理では、すべてのソース ファイルがコンパイルされ、お互いに必要なライブラリ ファイルとともにリンクされます。ビルドのコマンドは既に最新状態であるファイルに対するリコンパイルは行いません(これは 依存関係のチェック と呼ばれます)。もしあなたがすべてのファイルに対して個別にコンパイルを行っていた場合、ビルドはリンクの処理のみを行います。もし既にビルドを実行済みで、依存するファイルに対して修正を加えていない場合はリンクのステップさえもがスキップされます。

依存関係のチェックがプロジェクトの開発に及ぼす効果は明確でしょう。あなたがファイルを変更した場合、そのファイルに依存するすべてのファイルはリコンパイルされます。すべてのファイル(オブジェクト ファイルだけでなく実行可能ファイルも含む)はビルドの処理において、依存関係のチェックが行われます。もし特定のファイルが依存するファイルに対して変更が加えられていた場合、そのファイルは再生成されます。

もし依存関係のチェックがなかった場合、あなたの(プログラマとしての)人生がどうなるか想像できますか? あなたがこの問いにまだ答えられないとしても、大きなプロジェクトの開発をはじめてみればわかります!

ビルドビルド により、編集中のファイルが属するディレクトリのすべてのファイルにたいしてビルドが行われます。

ビルドプロジェクトのビルド によりプロジェクト全体のビルドが行われます。サブ ディレクトリにたいしては再帰的にビルドが行われます。

### その他の操作

#### 配布用パッケージの作成

プロジェクトの配布用 tarball ファイルを作成するには ビルド Tarball の生成 を選択します。これにより、プロジェクトのトップ ディレクトリに、tarball ファイル( `*.tar.gz` )が作成されます。作成したファイルは、配布用の安全な場所にコピーしてください。

#### プロジェクトのインストール

メニューから ビルドインストール を選択することにより、あなたのシステムにアプリケーションがインストールされます。

##### システムへのインストール

システムにたいしてインストールを行う場合は、root としてログインしていなければなりません。また pixmap ファイルを使用する GNOME アプリケーションのプロジェクトは、システムにたいしてインストールを行う必要があることにも注意してください。システムにたいしてインストールをしない場合、"pixmap not found"のエラーが頻発するでしょう。プロジェクトをインストールする前に、ビルドの設定でAnjutaが `sudo`、または `su` を使用するように設定することができます。

#### クリーン

これによりビルドの処理で作成されたオブジェクト ファイル( `*.o` ファイル)、および実行可能ファイルを含むすべてのファイルが削除されます。この操作はディレクトリ、またはプロジェクト全体にたいして行うことができます。

メニューから ビルドプロジェクトのクリーン を選択することにより、プロジェクトのすべてのファイルにたいするクリーンが行われます。

メニューから ビルドクリーン を選択することにより現在編集中のファイルが属するディレクトリにたいするクリーンが行われます。

## デバッグ

デバッグするのは人間、解決するかどうかは運次第...

さて、このセクションでは 人間 の部分について説明します。運 の部分はあなたが担当してください!

プログラムが期待した動作を行わないとき、私たちはそのプログラムに バグ がある、といいます。バグはコンパイル エラーとは異なります。コンパイル エラーは、コンパイラがどこに問題があるのか指摘してくれるので解決するのが簡単です。それと違ってバグのほうは、プログラムが実行されている最中に発生するエラーであり、探すのが困難(時には、とても困難!)です。

あなたがバグがないと思っているプログラムから、完全にバグがなくなることは決してありません。私たちにできることは、プログラムに含まれているバグを減らしていくことです。バグをつぶしていく作業は デバッグ と呼ばれ、デバッグのために使用するツールを デバッガ と呼びます。Anjuta には、非常に親しみやすく強力なデバッグ環境があります(実際には、強力なコマンドライン ツールであり、Linuxの標準である gdb を GUI から使えるようにしたものです)。

デバッガはプログラムの実行を追跡、調査するとともに、プログラムの実行について調査するために必要となる、さまざまなビューと情報を提供します。

### 開始と停止

デバッガは常にプログラムのロードにより開始されます。開始される方法は、以下の2つです。

- 実行可能ファイルの実行

- プロセスへのアタッチ

Anjuta では、ほとんどの機能はプラグインとして提供されています。ここで説明しているメニューを目にしたことがない場合は、おそらくデバッガのプラグインがロードされていないのが原因でしょう。編集設定全般インストール済みのプラグイン で、デバッガのプラグインがロードされているか確認してください。デバッガ プラグインはユーザが選択可能なプラグインなのでロード、アンロードはユーザの要求にしたがいます。

#### 実行可能ファイルの実行

デバッガを使う、使わないにかかわらず、プログラムの実行は同様のメニューから行います。デバッガを使用しないでプログラムを実行する場合は 実行実行 を、デバッガを使用する場合は 実行プログラムのデバッグ を選択します。

デバッガをより有効に使用するために、デバッグ情報を生成(gcc に -g オプションを指定)し、最適化を無効(gcc に -O0 オプションを指定)にしてプログラムをビルドすることを強く推奨します。これは、最初にビルドを行う前にデバッグの構成を選択することで行うことができます。

実行プログラムのパラメータから、どのプログラムを実行するかと、実行するときの環境が選択できます:

- デバッグするプログラム

  ドロップダウン コンボボックスのリストには、開いているプロジェクトのすべての実行可能ファイルがすでに入力されています。しかし、プロジェクトに含まれていない実行可能ファイルを指定することもできます。デバッガは libtool 実行ファイル(libtool により生成された、本物の実行可能ファイルにたいするラッパー スクリプト)もサポートします。

- コマンドラインの引数

- 作業フォルダ

- 環境変数の一覧

  明るいグレーで表示されているのは現在の環境変数の一覧です。ここで環境変数の追加、変更、削除ができます。

  Anjuta を使って Anjuta をデバッグするときなどは、例えば環境変数に "GTK2_RC_FILES=/usr/share/themes/Crux/gtk-2.0/gtkrc" を指定して、デバッグされるインスタンスに異なるテーマを適用することができます。

- プログラムを端末内で実行するかどうかを指定します。もし端末内で実行する場合、Anjuta の端末プラグインが使用されます。

#### プロセスへのアタッチ

実行中のプロセスに対してデバッグを行うこともできます。メニューから 実行プロセスへアタッチ...を選択すると、システムで実行中のすべてのプロセスの一覧が表示されます。

##### プロセスへのアタッチ ダイアログ

プロセスへのアタッチ ダイアログ

アタッチするプロセスを選択して アタッチ をクリックすると、デバッガが開始されて、選択されたプロセスへのアタッチが行われ、プロセスが停止します。

現在のところ、アタッチしたプロセスにシンボルをロードすることはできません。シンボルはプロセスに含まれている必要があります。

#### デバッガの停止

メニューから 実行デバッガの停止 を選択して、デバッガを停止することができます。これによりデバッグされていたプロセスは強制終了されます。デバッガが実行中のプロセスにアタッチされていた場合は、プロセスは強制終了されずに、デバッガがデタッチされます。プログラムがアタッチされている、または実行中の場合は、停止の確認が求められます。

#### ソース ディレクトリの追加

メニューから デバッグソース パスの追加... を選択して表示されるダイアログボックスで、ソース ディレクトリの追加と削除ができます。

ほとんどの実行可能ファイルには、ファイルのフルパス情報が含まれているため、通常はソース ファイルのディレクトリを設定する必要はありません。しかし、実行可能ファイルにパス名が含まれておらず、ファイル名のみの場合もあります。そのような場合デバッガは、これらのディレクトリからソース ファイルを検索します。同じ名前のソース ファイルが存在する場合、ディレクトリを検索する順序が重要になります。ディレクトリを検索する順序は 上へ、下へ ボタンにより変更することができます。ディレクトリのリストは、デバッガが開始されるときにデバッガに送られます。ソース ディレクトリを変更しときは新しい一覧を有効にするため、デバッガを再起動する必要があります。

### 実行

プログラムの実行はデバッガにより細かく制御することが可能です。プログラムをシングル ステップで実行したり、ブレークポイントを設定したところまで実行したりすることもできます。このようにプログラムを実行することは、プログラムの振る舞いを調査するときに欠かせません。ビデオの編集をするときのように、プログラム早送り、一時停止、停止しながら スローモーション で実行することができます(巻き戻しはできませんが)。

以下のセクションで説明するこれらの方法は、デバッガでプログラムを実行するときに使用可能です。これらのコマンドはプログラムの実行中のみ使用できます。

#### シングル ステップ(ステップイン)

メニューから デバッグステップイン を選択するか、デバッグ ツールバー の ステップイン アイコンをクリックすると、プログラムにステップインすることができます。

シングル ステップは、プログラム(が停止した場所)の1つのステートメントだけを実行したあとに制御を戻します。ステートメントに1つ、または複数の関数が含まれる場合、デバッガは(関数が複数ある場合は実行される順に)関数の内部にステップ インを試みます。ステートメントが実行され制御が戻されたあとでプログラムの状態を調査することができます。

逆アセンブラ ウィンドウ が選択されているときにステップインで実行した場合は、ただ1つのアセンブラ命令が実行されます。

#### シングル ステップ(ステップオーバー)

メニューから デバッグステップオーバー を選択するか、デバッグ ツールバー の ステップオーバー アイコンをクリックすると、プログラムのステートメントをステップオーバーできます。

ステップオーバー は ステップイン と似ていますが、ステートメント内で実行されるの関数内部に、ステップインしないところが異なります。ステートメントは、そのステートメントを1ステップとして実行されます。

逆アセンブラ ウィンドウ が選択されているときに、ステップオーバーで実行した場合は、1つのアセンブラ命令が実行されます。しかし、そのアセンブラ命令がサブルーチン呼び出しの場合、 サブルーチン内部へステップインはしません。

そのステップで動的ライブラリをロードしている場合、プログラムはステップの最後で停止しません。ブレークポイントに遭遇するか、あなたが実行を停止するまでプログラムは実行されます。

#### シングル ステップ(ステップアウト)

メニューから デバッグステップアウト を選択するか、デバッグ ツールバー の ステップアウト アイコンをクリックすると、プログラムをステップアウトできます。

ステップアウト は、実行中の関数がリターンするまでプログラムを実行して、呼び出し元の関数に戻った時点で停止します。ステップアウトは本当の意味でのシングル ステップではありません。なぜならステップオーバーは1つのステートメントを実行するのではなく、実行中の関数から呼び出し元の関数に戻るまでプログラムを実行するからです。

#### 実行/継続

メニューから デバッグ実行/継続 を選択するか、デバッグ ツールバー から 実行/継続 アイコンをクリックすると、プログラムの実行を継続することができます。

このコマンドによりプログラムはブレークポイントに遭遇するか、実行終了までプログラムを実行します。

#### カーソル位置まで実行

メニューから デバッグカーソル位置まで実行 を選択するか、デバッグ ツールバー の カーソル位置まで実行 アイコンをクリックすると、カーソルのある行までプログラムを実行します。

このコマンドによりプログラムはカーソルのある行、またはアドレス( 逆アセンブラ ウィンドウ が選択されている場合)までプログラムを実行します。

#### プログラムの一時停止

プログラムがデバッガの制御下で実行中の場合、デバッグの多くの操作を行うことができなくなります。実行中のプログラムから制御を取り戻すには、メニューから デバッグプログラムの一時停止 を選択するか、デバッグ ツールバー の プログラムの一時停止 アイコンをクリックします。このコマンドによりプログラムが中断され、デバッガに制御が戻されます。

### ブレークポイント

プログラムをデバッグするとき、特定の場所でプログラムの実行を停止できれば、その場所でのプログラムの状態を調べることができるので便利です。ブレークポイントはこれを可能にします。ブレークポイントをソース ファイルのいろいろな場所に設定し、プログラムを実行することができます。プログラムがブレークポイントに達すると、プログラムの実行は停止され、式の評価や変数の検査、スタックトレースの調査などが可能になります。

#### ブレークポイントの一覧

ブレークポイントの一覧 ウィンドウ は 表示ブレークポイント で表示することができます。

##### ブレークポイント ビュー

ブレークポイント ビュー

ビューには、以下のような列があります:

位置

  ソース ファイルのブレークポイントの位置です。デバッガによりブレークポイントが設定されると、そのブレークポイントがどの関数に含まれるか等の、追加情報を得ることができます。

アドレス

  この項目にはデバッガにより設定された、ブレークポイントのアドレスがセットされます。

タイプ

  常に "ブレークポイント" を表示します。これは、将来のリリースでブレークポイントの種類をサポートする使用されます。

条件

  ブレークポイントの条件です。条件が設定されていない場合は何も表示されません。

通過する回数

  デバッガが実行されていない場合、ブレークポイントを通過する回数が表示されます。設定されていない場合は、0が表示されます。

  デバッガが実行中の場合、通過する回数が0のときはプログラムがそのブレークポイントを通過した回数が表示されます。通過する回数に0以外を設定した場合は、通過した回数と右側に設定した回数が表示されます。

状態

  ブレークポイントの状態には以下のものがあります。

  - Pending: プログラムではブレークポイントはセットされていません。

  - Permanent: ブレークポイントがセットされています(括弧内の数字はブレークポイントのIDです)。

  - Temporary: ブレークポイントがセットされましたが、実行がそこに差し掛かるとブレークポイントは削除されます。

すべてのブレークポイントは、例えそれが存在しない場所に設定されているような場合でも、セッションをまたがって保持されます。デバッガ インターフェースはプログラムが開始されたとき、または動的ライブラリがロードされるたびにそれらのブレークポイントをセットしようと試みます。

#### ブレークポイントの追加と設定

メニューから デバッグブレークポイント追加... を選択するか、ブレークポイント一覧のポップアップメニューよりブレークポイント追加... を選択すると ブレークポイントの追加 ダイアログが表示されます。

##### ブレークポイントの追加 ダイアログ

ブレークポイントの追加 ダイアログ

位置、およびオプションとして条件とパスの回数を入力して OK をクリックすることによりブレークポイントが設定されます。

位置

  ブレークポイントを設定する場所を入力します。以下の書式で設定することができます:

  1. File_name:Line_number

  2. Function_name

  3. File:Function_name

  最初の書式の意味は明白でしょう － ブレークポイントはソース ファイル File の中の、行番号 Line_number に設定されます。2番目の書式では関数 Function_name の最初の行に設定されます。3番目の書式は2番目と似ています。異なるのは、この書式がプログラムの中に関数 Function_name が複数あるような場合に使用されるというということです。ファイル File を指定することによって、ファイル File の関数 Function_name という参照の仕方でそれらを区別します。

条件

  条件 は真偽値として評価される式 － つまり評価した結果がTRUE(1)、またはFALSE(0)となる式です。評価した結果が真偽値でない場合、適切なキャストにより真偽値として評価します。

  プログラムの実行がその場所にさしかかったときは、条件式が毎回評価されます。デバッガは評価した結果が TRUE の場合は実行を停止します。結果が TRUE でない場合は、ブレークポイントが設定されていないのと同様に実行を続けます。

  条件 を、デフォルトのブランクにしておいた場合は、TRUE が設定されます。デバッガはこのブレークポイントで毎回実行を停止します。

パスの回数

  パスの回数 には、デバッガがブレークポイントを評価するまで、何回ブレークポイントをスキップするかを整数(符号なし)で指定します。パスの回数 は 条件 より優先されます。デバッガは パスの回数 が0になったときだけ、条件 を評価します(条件が設定されていた場合)。条件が設定されていない場合、デバッガは パスの回数 が0に減らされたことにより実行を停止します。

  パスの回数 を、デフォルトのブランクにした場合は、0が設定されます。ブレークポイントは最初に実行がさしかかったときから評価されます。

ブレークポイントの設定はエディタで行を選択して、メニューかコンテキスト メニューの デバッグブレークポイントの ON/OFF を選択するか、デバッグ ツールバーのブレークポイントの ON/OFF アイコンをクリックします 。

デバッガが開始されていない場合や、動的ライブラリがまだロードされていない場合でもブレークポイントは追加することができます。しかしプログラムがデバッガの制御下で実行されていない場合は有効になりません。

#### ブレークポイントの編集

ブレークポイントの一覧からブレークポイントを選択し、ポップアップ メニューから ブレークポイントの編集 をクリックすると、ブレークポイントの条件やパスの回数を変更することができます。

必要な項目を入力して OK をクリックすれば変更を適用することができます。

#### ブレークポイントの削除

ブレークポイントの一覧からブレークポイントを選択して ブレークポイントの削除 をクリックすると、ブレークポイントを削除することができます。

すでに存在するブレークポイントは、エディタでブレークポイントが設定されている行を選択してメニューの デバッグブレークポイントの ON/OFF を選択するか、エディタのコンテキスト メニューから ブレークポイントの ON/OFF を選択、または デバッグ ツールバー の ブレークポイントの ON/OFF アイコンをクリックすることにより削除できます。

デバッグすべてのブレークポイントの削除 をクリックする、またはブレークポイント一覧のコンテキスト メニューで すべてのブレークポイントの削除 を選択することにより、すべてのブレークポイントを削除することができます。

#### ブレークポイントの有効/無効

ブレークポイントの一覧 ウィンドウ の列で有効にチェックを入れるか、コンテキスト メニューで ブレークポイントを有効にする を選択することにより、選択したブレークポイントの有効/無効にすることができます。ブレークポイントを有効になるか無効になるかは、ブレークポイントのそのときの状態に依存します。

すべてのブレークポイントを無効にするには、デバッグ全ブレークポイントを無効にするか 、ブレークポイント一覧のコンテキスト メニューで 全ブレークポイントを無効にする をクリックします。

### 式

#### ローカル変数の一覧

プログラムがデバッガの制御下で実行されているときに、表示ローカル を選択すると、ローカル一覧 ウィンドウ が表示されます。

現在のフレーム(プログラムで実行中の関数)のローカル変数が ローカル ウィンドウ に表示されます。関数の実行中(例 シングルステップで実行中)、ローカル変数の値は更新されます。デバッグの直前のステップで値が変化した変数は赤色でハイライト表示されます。変数は見易いようにツリー表示されます。

##### ローカル変数

ローカル変数

値 列をクリックすることにより、ローカル変数の値を変更することができます。

gdb は、GUI のバックエンドとして頻繁に使用されており、この分野で改良されつづけてきました。gdb は最新のバージョン(6.6)の使用をおすすめします。古いバージョンの gdb は、無効なポインタ(たとえ使用していなくても)を参照したときにクラッシュすることがあります。

#### ウォッチ式の一覧

式の検査や評価は、そのとき1度しか行えません。継続して変数や式をモニターする場合は ウォッチ式 を使用します。

メニューから表示ウォッチを選択すると、ウォッチ ウィンドウが表示されます。

#### ウォッチ式の追加

ウォッチ ウィンドウ を右クリックして表示されるコンテキスト メニューからウォッチの追加... を選択するか、デバッグウォッチの追加... で式を入力するダイアログが表示されるので、式を入力して OK をクリックします。

デフォルトではウォッチ式はプログラムが停止するたびに更新されます。これはウォッチ式の追加 ダイアログ。または ウォッチ ウィンドウ のコンテキスト メニューの 自動的に更新する で設定することができます。ウォッチ式はコンテキスト メニューの 全ウォッチの更新、または すべて更新 を選択することにより手動で更新することができます。

新しいウォッチ式を追加するときにデバッガが実行されている必要はありません。デバッガが実行されてしない、または一致するような式が見つからないような場合、プログラムが停止するたびにウォッチ式を作成しようと試みます。

#### ウォッチ式の削除

ウォッチ ウィンドウ で削除したいウォッチ式を右クリックして、コンテキスト メニューから ウォッチの削除 を選択するとウォッチ式を削除することができます。

ウォッチ ウィンドウ のコンテキスト メニューから すべて削除 を選択すると、すべてのウォッチを削除することができます。

#### 式の評価

ブレークポイントなどでデバッガから制御が戻ったときに、式の評価やプログラムで使用している変数の値を調べることができます。メニューから デバッグ検査/評価...、またはエディタのコンテキスト メニューで 検査/評価... を選択するか、デバッグ ツールバー の 検査 ボタンをクリックします。

ウィンドウが表示され、式の評価結果をハイライト表示します。変数 の列をクリックすれば新しい式を入力することができます。

追加 ボタンをクリックすれば、ウォッチ式の一覧に式を直接追加することができます。

#### エディタ　ウィンドウでの式の検査

プログラムが停止したときにデバッガが実行中のときは、式の上にマウスカーソルを移動すれば式の値を知ることができます。ローカル、または ウォッチ のウィンドウに、式が既に一覧されている場合、ツールチップに式の値が表示されます。

この機能は現在のところ構造体や配列に対しては機能せず、単純な変数が対象となります。

### スタックトレース

#### スタック ウィンドウ

スタックトレース ウィンドウ には、すべての関数とその引数、呼び出し順序といったスタックの情報が表示されます。また呼び出しに関する数値も表示されます。この数値は フレーム と呼ばれます。トレースに表示される呼び出しは、それぞれが異なるフレームに属します。この数値はフレーム 0 (直前の呼び出し)を開始点として、呼び出された階層が深くなるにつれて大きくなっていきます。

メニューから 表示スタック を選択すると、デバッグしているプログラムのスタックトレースを表示することができます。

##### スタックトレース ウィンドウ

スタックトレース ウィンドウ

小さい矢印はスタックトレースの実行中のフレームを指しています。デフォルトでは直前の呼び出しである、フレーム 0を指します。式や変数に対する評価/検査は選択されたフレームを参照します。評価する変数や式のスコープも、選択されたフレームに限定されます。これはウォッチに新たに加えた式にも適用されます。

#### カレントフレームの設定

スタックトレースの任意のフレームをダブルクリックして、選択したフレームをカレント フレームに設定することができます。矢印がそのフレームを指すことにより、選択したフレームがカレント フレームであることを示します。かわりに スタックトレース ウィンドウ を右クリックして表示されるコンテキスト メニューで カレントのフレームにする で、フレームを設定することもできます。

スタック フレームの変更により ローカル ウィンドウ の表示も変更されます。しかし ウォッチ ウィンドウ では、それぞれのフレームで式が定義、評価されたときの結果が表示されます。

### スレッド

#### スレッド ウィンドウ

スレッド ウィンドウ には、プログラムのすべてのスレッドとカレント スレッドが表示されます。メニューから 表示スレッド を選択すると、このウィンドウが表示されます。

小さな矢印は、カレント スレッドを指します。プログラムを停止したときは、中断されたスレッドがカレント スレッドです。それぞれのスレッドは自身のスタック フレームをもつため、カレント スレッドを変更することは、カレント フレームを変更することでもあります。

#### カレント スレッドの設定

スレッド一覧のスレッドをダブルクリックすることで、選択したスレッドをカレント スレッドにすることができます。矢印がそのスレッドを指すことで、選択したスレッドがカレント スレッドであることを示します。かわりに スレッド一覧ウィンドウ を右クリックして表示されるコンテキスト メニューで、フレーム対象にする でもスレッドを設定することができます。

スレッドを変更することによりCPUレジスタの値とカレント スタックフレームが変更されます。また ローカル ウィンドウ の内容も変更されます。

### CPU

#### レジスタ ウィンドウ

CPU(マイクロプロセッサ)の内部レジスタの内容を調べることを可能とします。メニューから 表示レジスタ を選択するとウィンドウに、マイクロプロセッサで使用可能なレジスタと内容の一覧が表示されます。

デバッガの直前のステップで値が変化したレジスタは、値が赤色でハイライト表示されます。任意のレジスタの値を変更するには、そのレジスタを選択して 値 の列をクリックすれば変更ができます。

#### メモリ ウィンドウ

メニューから 表示メモリ を選択すると、デバッグしているプログラムの メモリ ウィンドウ が表示されます。このウィンドウにはすべてのメモリの内容が表示されます。

最初の列にはメモリのアドレスが16進で表示されます。2番目の列にはメモリの内容が16進で表示され、最後の列にはメモリの内容が ASCII 表示されます。

アドレス空間はとても広大(32ビットのマイクロプロセッサで4ギガバイト)なため、スクロールバーで特定のアドレスに移動するのは簡単ではありません。しかし右クリックして表示されるコンテキスト メニューからアドレスにジャンプを選択すると小さな入力ボックスが表示されるので、そこに移動したいアドレスを16進で入力すれば任意のアドレスに移動することができます

#### 逆アセンブラ ウィンドウ

メニューから 表示逆アセンブラ を選択すると、デバッグしているプログラムの 逆アセンブラ ウィンドウ が表示されます。

最初の列にはアドレスが16進で表示されます。2番目の列には、ラベル(行頭からコロンで終端されている)、またはアセンブラ命令(行頭から4桁のスペースでインデントされている)が表示されます。

アドレス空間はとても広大なため、スクロールバーでの移動は困難です。右クリックして表示されるコンテキスト メニューから 指定したアドレスへ移動 を選択すると、移動したいアドレスを16進で入力できる入力ボックスが表示されます。プログラムの停止により、逆アセンブラ ウィンドウではプログラム カウンタの場所が表示されます。

### その他

デバッガには他に、あまり頻繁に使用されず、新しいIDEに充分統合されてないものの、使用可能な機能がいくつか存在します。

#### 動的ライブラリ

プログラムで使用されている動的ライブラリの一覧は、メニューの デバッグ情報共有ライブラリ で取得することができます。これにより共有ライブラリ ウィンドウが開き、プログラムによりロードされた動的ライブラリと、それらがロードされたメモリ内の場所を一覧で表示されます。また、どのライブラリのシンボル テーブルが取得済/取得されていないかも表示されます。

##### 共有ライブラリ ウィンドウ

共有ライブラリ ウィンドウ

#### カーネルのシグナル

Linuxではプロセス間のシグナルのやりとりは、カーネル シグナルにより行われます。プログラムで使用可能なシグナルの一覧は、メニューの デバッグ情報カーネルのシグナル で取得することができます。これによりカーネル シグナルのウィンドウが開き、システムで使用可能なシグナルが、シグナルの説明とともに一覧で表示されます。

##### カーネルシグナル ウィンド

カーネルシグナル ウィンド

以下の3つの列では、プログラムがシグナルを受信したときの動作を指定できます:

1. 停止 — プログラムがシグナルを受信したときにプログラムを停止(および制御を戻す)させるようデバッガに指定する。

2. 印刷 — プログラムがシグナルを受信したとき、それを通知するようデバッガに指定する。

3. パス — プログラムがシグナルを受信したとき、そのシグナルをプログラムにパスするようデバッガに指定する。

右クリックして表示されるコンテキスト メニューは、それらの機能がまだ実装されていないため選択不可になっています。

#### 使用しているファイルについての情報

メニューから デバッグ情報ターゲット ファイル を選択すると、デバッグされているプログラムのファイルについての情報が表示されます。

#### デバッグされているプログラムについての情報

メニューから デバッグ情報プログラム を選択すると、デバッグされているプログラムについての情報が表示されます。

#### カーネル構造体についての情報

メニューから デバッグ情報カーネルユーザ構造体 を選択すると、現在のプロセスのカーネル データの情報が表示されます。

#### グローバル変数についての情報

メニューから デバッグ情報グローバル変数の情報 を選択すると、すべてのグローバル変数の情報が表示されます。

#### 現在のフレームについての情報

メニューから デバッグ情報現在のフレーム を選択すると、現在選択されているフレームについての情報が表示されます。

#### 関数の引数についての情報

メニューから デバッグ情報関数の引数 を選択すると、現在実行している関数の引数についての情報が表示されます。

#### ユーザ コマンド

メニューから デバッグデバッガのコマンド... を選択すると、バックエンドに対して直接コマンドを送信することができます。表示されたダイアログでコマンドを入力して Return を押せば、コマンドがデバッガに送信されます。

フロントエンドはコマンドに対するチェックを行わずに、コマンドをバックエンドに送信します。例えばこの方法でブレークポイントを設定したとしても、そのブレークポイントは ブレークポイント一覧 ウィンドウ には表示されません。自分が何をしているか確信が持てない限り、このコマンドは使用しない方がよいでしょう。

## Glade インターフェース デザイナ

### クイック スタート

もしあなたが退屈なマニュアルを読みたくない場合は、以下の手順ですぐに使い始めることができます:

1. Glade ファイルを含むプロジェクトを開きます;

2. オリジナルのGlade デザイナとは異なり、Anjuta のプラグインでは、ダブルクリックをデフォルトのシグナルに対するハンドラの作成に使用しています。Glade ではダブルクリックを使用するような場合(例 GtkNotebook のタブの切り替え)、Anjuta では "Windows" キー、または "Super" キーを押しながらクリックしてください;

3. 設定Glade GUI デザイナを開いて編集時にハンドラを追加、デザイナを切り離す、そしてリソースを自動的に追加をチェックします;

4. 表示デザイナ をチェックして、ウィンドウを適当な場所に配置します;

5. Glade ファイルのデザイン エリア、および Glade ファイルのコールバック ハンドラを記述するソースファイルを開いてから Glade最後の UI ファイルとソース ファイルを関連づけます をクリックします;

6. オプションとして、ターゲットのためのイメージ、その他のリソースをプロジェクト マネージャで選択して、コンテキスト メニューから デフォルトのターゲットとして指定する を選択します。

### Glade の一般的な使用方法について

Glade プラグインは、その多くの機能をスタンドアロン版の Glade デザイナから借用しています。しかし、それ以外の固有な機能もあります。デザイン エリア、パレット、ウィジェット インスペクタ、そしてプロパティ エディタの4つは、Gladeデザイナ のウィンドウです。これらはスタンドアロンのデザイナと同し目的で使用するので、詳細は Glade Interface Designer Manual を参照してください。ここで説明するそれ以外の固有機能により、あなたは Anjuta をさらに効果的に使用することができます。

### 編集プログラムとデザイナの関連付け

テキスト エディタと Glade デザイナを関連付けることにより、それらを切り替えるのが簡単になるのと、新たに追加したハンドラに対応するハンドラ スタブも自動的に追加されるようになります。デザイナに対して複数のエディタを関連付けることもできます。この関連付けは一番最近使用したエディタと、編集中のトップレベルのウィジェットの間で行われます。1つめの方法は関連付け ダイアログで行う方法です。2つめは、デザイナとエディタを選択してから、メニューのGlade最後の UI ファイルとソース ファイルを関連づけます を選択する方法です。

### 関連付け ダイアログ

関連付けのダイアログにより関連付けを作成、管理することができます。関連付けを作成するには、コンボボックスからデザイナとエディタを選択して 関連付け をクリックします。ドキュメント ウィンドウか、メニューの一覧からからドキュメントを選択することもできます。ダイアログの中央には、既存の関連付けの一覧があります。下には関連付けのプロパティを編集するために、以下で説明するようなコントロールがあります:

Spec regexp (Special regular expression:スペシャルマークの正規表現)

  "special regular expression"の略です。挿入する雛形の位置を正規表現により定義します。

Widget name(ウィジェットの名前)

  関連付けが適用されるトップレベルのウィジェットの名前です。

Position type(ポジション タイプ)

  雛形ハンドラをどこに挿入するかを指定します。After begin(先頭の後)は、スペシャルマーク(スペシャルマークの正規表現で入力した正規表現)の直後の位置に挿入することを意味します。また、before end(終端の前)はスペシャルマークの前に挿入する、という意味です。デフォルトでは、先頭のマークとして /* window_name callbacks */ が、終端のマークとして /* end of window_name callbacks */ となっています。window_name は省略することができます。

### デフォルトのシグナル

デザイナでウィジェットをダブルクリックすると、そのウィジェット用にあらかじめ定義された命名法により、既定のシグナルのためのハンドラ スタブが作成されます。例えば、ボタンに対するデフォルトのシグナルは "clicked"、チェックボックスに対するデフォルトのシグナルは "toggled"、といった具合です。各ハンドラをエディタから指定する オプションをチェックしている場合、挿入する場所 で設定した位置にハンドラ スタブが挿入されます。

### スタブの挿入

自動的にハンドラ スタブを作成することによりユーザを多くの機械的な作業から開放することは、Anjuta と Glade を統合することによりもたらされる価値あるゴールの1つです。

スタブを作成する方法はいくつかあります:

- 各ハンドラをエディタから指定する が選択されている場合は自動的に作成されます

- メニューの Gladeハンドラ スタブの挿入 (自動) を選択する。

- ドキュメントのコンテキスト メニューから、ハンドラ スタブを挿入する を選択する。

### 設定

各ハンドラをエディタから指定する

  シグナル エディタで新しいハンドラを追加、または デフォルトのシグナル ハンドラの作成により、関連付けられた編集中のプログラムにハンドラ スタブが挿入されることを可能にします。

デザイナの切り離し

  ドキュメント マネージャからデザイン エリアを切り離します。

自動的にリソースを追加する

  これをチェックした場合、すべてのリソース(例 イメージ)をプロジェクトのターゲットに追加することができます。プロジェクト マネージャのコンテキスト メニューから選択、またはチェックボックスの下のテキスト ボックスにターゲット ID を入力することにより可能です。

ハンドラの名前の書式

  シグナル ハンドラを自動的に命名するときのの書式を2つの中から選ぶことができます。

## 設定

Anjuta をあなたのお好みに設定することができます。編集設定 を選択すると設定ダイアログが表示されます。いくつかの設定について説明します。

### 全般

1. プロジェクトのフォルダ は、あなたのプロジェクトすべてを格納するためのフォルダです。アプリケーション ウィザードで作成したプロジェクトはすべてこのフォルダ配下に作成されます。デフォルトのプロジェクトのフォルダは~/プロジェクト名 となります。これは多くのユーザを満足させる設定でしょう。

2. 開発者の情報: 名前と電子メールのアドレスを入力します。これらの設定はソフトウェアの登録に使用されるわけではありません。ChangeLog やその他の文書を作成する際に使用されます。

### ファイル マネージャ

1. デフォルトのルート フォルダ は、プロジェクトを開いていないときにファイル マネージャが開くデフォルトのフォルダです。

2. フィルター: 例えば隠しファイルや、バージョン管理システムから無視されるビルド時に生成される中間ファイルなどをフィルタすることができます。

## ユーザ定義ツール

### はじめに

あなたは Anjuta の機能に満足できないような場合があるかもしれません。そんな場合はあなた自身が Anjuta の開発に加わるか、あなたが望む機能の実装を要望することができます。しかしながら、これらの方法には時間がかかるし、あなたの要望する機能が特殊な機能であるような場合は問題があります。そのようなときは Anjuta のツール フレームワークが役に立ちます。

Anjuta は、Anjuta 自身の機能を拡張するためのユーザ定義ツールを定義できる強力なフレームワークを提供します。ツールからは、IDE からの変数使用など、大抵の機能にアクセスすることができます。ツールを任意のメニューに追加したり、GUI フレームワークへの入出力、そしてエラー出力のリダイレクトや、ツールにコマンドライン引数を与えることもできます。

ツールプラグインはこれらの機能を兼ね揃えていなければなりません!

### ツールの例

これは GNOME の ChangeLog を生成するスクリプトを、ツール プラグインとしてどのように統合するかの簡単なサンプルです。

#### ツール エディタ

ツール エディタ

## 作者

Anjuta プロジェクトは Naba Kumar によって設立されました。このページ には、Anjuta の開発に寄与したすべての人の一覧が掲載されています。

Anjuta に関する情報を更に得るには、プロジェクトのウェブサイト http://anjuta.org を訪れてみてください。バグの報告についてはプロジェクト開発サイトである http://www.sourceforge.net/projects/anjuta のバグ追跡システムを使用してください。

このマニュアルはNaba Kumar、Andy Piper、Biswapesh Chattopadhyay、そしてJohannes Schmidが記述しました。マニュアルについてのコメントや提案は、Anjuta の開発者メーリングリストである anjuta-devel-list@gnome.org に送信してください。コメントはSourceForgeのプロジェクト追跡システムにも送信されます。

## ライセンス

このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフトウェア財団によって発行された GNU 一般公衆利用許諾契約書 (バージョン2か、希望によってはそれ以降のバージョンのうちどれか)の定める条件の下で再頒布または改変することができます。

このプログラムは有用であることを願って頒布されますが、*全くの無保証*です。商業可能性の保証や特定の目的への適合性は、言外に示されたものも含め全く存在しません。詳しくは GNU 一般公衆利用許諾契約書 をご覧ください。

GNU General Public License のコピーは GNOME Users Guide の付録に含まれています。GNU General Public License のコピーの入手は Free Software Foundationのウェブサイト を訪れるか、

    Free Software Foundation,Inc.51 Franklin Street Fifth Floor Boston,MA02110-1301USA

にメールしてください。