blob: aac6992393736fd38510ab4b371ade889f5de0bd [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>コード支援に対するC/C++アプリケーションの操作方法</title>
<link rel="stylesheet" href="../../../netbeans.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<meta name="description"
content="This article discusses how to solve issues you may encounter with the C/C++ code assistance features
of the NetBeans IDE or Oracle Solaris Studio IDE.">
<meta name="author" content="Vladimir Kvashin and Vladimir Voskresensky"> <!--Optional tag-->
<meta name="keywords" content="development, NetBeans, IDE, C, C++, Oracle Solaris Studio, code assistance, namespace">
</head>
<body>
<a name="top"></a>
<h1>コード支援に対するC/C++アプリケーションの操作方法</h1>
<!-- START INTRO ---------------------------------------------------------------------------------------* -->
<div class="articledate" style="margin-left: 0px;font-style:italic;">
<p><em>執筆: <a href="mailto:vladimir.kvashin@oracle.com"><i>Vladimir Kvashin</i></a>および<a href="mailto:vladimir.voskresensky@oracle.com"><i>Vladimir Voskresensky</i></a><br>2013年3月</em> [リビジョン番号: V8.0]
</div>
<p>コード支援は、ソース・コードの移動および編集に役立つ一連のIDE機能です。既存のソースを使用するC/C++プロジェクト、または既存のバイナリからのC/C++プロジェクトの場合、IDEのコード支援機能を有効にするためにコードが解析される方法を指定できます。
</p>
<p>この記事のヒントは、主に既存のソースまたは既存のバイナリからのプロジェクトに適用されます。IDEのコード支援で作成および管理されているプロジェクトについては、構成は必要ありません。 </p>
<h3>内容</h3>
<img alt="このページの内容は、NetBeans IDE 8.0/7.4/7.3に適用されます" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="このページの内容は、NetBeans IDE 8.0/7.4/7.3に適用されます">
<table class="b-none vatop" cellpadding="0" cellspacing="0">
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#questionmark" title="プロジェクトの「プロジェクト」ウィンドウに疑問符がある、または#includeディレクティブに赤い下線が付いている場合の処置">プロジェクトの「プロジェクト」ウィンドウに疑問符がある、または#includeディレクティブに赤い下線が付いている場合の処置</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#analyzer" title="コード支援に対するビルド・アナライザの構成">コード支援に対するビルド・アナライザの構成</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#multiplatform" title="マルチプラットフォーム・プロジェクトに対するコード支援の構成">マルチプラットフォーム・プロジェクトに対するコード支援の構成</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#cannotbuild" title="プロジェクトをビルドできない場合のコード支援の構成">プロジェクトをビルドできない場合のコード支援の構成</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#definitiondeclaration" title="ハイパーリンクが関数定義に移動する場合と宣言に移動する場合">ハイパーリンクが関数定義に移動する場合と宣言に移動する場合</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#namespace" title="名前空間のすべての定義の検索">名前空間のすべての定義の検索</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#declaration" title="マクロ内で作成された宣言の宣言名の表示">マクロ内で作成された宣言の宣言名の表示</a></td>
</tr>
</table>
<h2><a name="questionmark"></a>プロジェクトの「プロジェクト」ウィンドウに疑問符がある場合の処置</h2>
<p>
プロジェクトの「プロジェクト」ウィンドウに疑問符があるか、<tt>#include</tt>ディレクティブに赤い下線が付いている場合、プロジェクトに未解決のincludeディレクティブがあります。IDEは、コード支援機能(コード補完、「クラス」ウィンドウ、「ナビゲータ」ウィンドウなど)によって使用される内部パーサーを使用します。このマークは、IDEプロジェクトの構成が間違っているために、このパーサーが一部の<tt>#include</tt>ディレクティブを解決できないことを意味します。この状況は、プロジェクトがデバッグ情報からの支援なしに既存のソースから作成された場合、またはソース・ファイルにIDEプロジェクトの作成以降の新規ライブラリが含まれていた場合などに発生することがあります。
</p>
<p>
考えられるいくつかの理由を示します(可能性が最も高いものから最も低いものの順に並べてあります)。</p>
<ul>
<li>誤っているか不十分なユーザー・インクルード・パスが、プロジェクト、論理フォルダまたはファイル・プロパティ内に指定されている</li>
<li>誤っているか不十分なユーザー定義マクロが、プロジェクト、論理フォルダまたはファイル・プロパティ内に指定されている</li>
<li>ソース・ファイルがプロジェクト内で誤ってインクルードされている</li>
<li>ヘッダー・ファイルがどのソース・ファイルでもインクルードされていないため、プロジェクト内で誤ってインクルードされている</li>
</ul>
<p>
プロジェクト・フォルダの上にマウス・カーソルを置くと、問題に関する情報がツールチップに表示されます。詳細は、プロジェクトを右クリックし、「コード支援」→「失敗した#include/#errorディレクティブ」を選択します。 </p>
<p>
問題を解決するには、プロジェクトを右クリックし、「コード支援」→「コード支援を構成」を選択して、コード支援を構成ウィザードを起動してみます。失敗したincludeディレクティブに対応するファイルの場所がわかっている場合、プロジェクト、論理フォルダおよびファイル・プロパティを手動で設定できます。
</p>
<h2><a name="analyzer"></a>コード支援に対するビルド・アナライザの構成
</h2>
<p>
アプリケーション・ソース・コードがMercurialなどのバージョン管理システム(VCS)で管理されており、IDEプロジェクトをソース・コードから作成するとします。IDEでIDEプロジェクトを開き、VCSから変更を取り込んだ場合、変更により最新の状態になるようにIDEプロジェクトをビルドする必要があります。</p>
<p>
IDEでプロジェクトをビルドした後、プロジェクトはIDEによって次の方法で自動的に更新されます。
<ul>
<li>新規コンパイル単位がIDEプロジェクトに追加されます。</li>
<li>既存のコンパイル単位が、新規または変更されたユーザー定義のインクルードとマクロで変更されます。</li>
<li>ビルドから除外されたコンパイル単位は、コード支援から除外されません。</li>
</ul>
<p>IDEは、介在手法を使用してOracle SolarisおよびLinuxプラットフォームでシステム・ライブラリexec呼出しをキャッチすることにより、ビルド・アナライザを使用してビルドから情報を収集します。デフォルトでは、ビルド・アナライザは、既存のソースでプロジェクトを作成する場合、および「コード支援を構成」を手動で実行する場合に使用されます。ビルド・アナライザが使用されない場合は、ビルドの出力ログが情報のキャプチャに使用されます。</p>
<p>
IDEでプロジェクト更新を実行しない場合は、次のようにビルド・アナライザを無効にできます。
</p>
<ol><li>「プロジェクト」ウィンドウでプロジェクトのノードを右クリックし、「プロパティ」を選択します。</li>
<li>「プロジェクト・プロパティ」ダイアログ・ボックスで、「コード支援」カテゴリを選択します。</li>
<li>「ビルド・アナライザの使用」オプションを選択解除します。</li></ol>
<p class="tips">ビルド時に自身の環境を設定するソース・コード・プロジェクトの場合、ビルド・アナライザは常に正常に動作するとはかぎりません。「ビルド・アナライザの使用」オプションが選択されている場合にビルドに失敗した場合は、ビルド・スクリプトをチェックして、<tt>LD_LIBRARY_PATH</tt>環境変数を設定解除したかどうかを確認する必要があります。<tt>LD_LIBRARY_PATH</tt>が設定されていない場合は、<tt>LD_PRELOAD</tt>も設定解除する必要があります。この2つの変数が設定解除されている場合、ビルド・アナライザは自動的に無効になります。ビルド・スクリプトを変更できない場合は、前述の方法でビルド・アナライザを無効にでき、IDEでビルド情報に出力ログを使用できます。</p>
<h2><a name="multiplatform"></a>マルチプラットフォーム・プロジェクトに対するコード支援の構成</h2>
<p>
既存のコードからマルチプラットフォーム・プロジェクトを開発する場合、同じIDEプロジェクトを異なるプラットフォームに使用できます。プラットフォームごとに構成を作成し、コンパイラ・コレクション、コンパイラ・オプションおよびその他のプロジェクト・プロパティを適切に変更します。
</p>
<p>コード支援を構成ウィザードも構成ごとに機能します。つまり、現在アクティブな構成のみを変更します。したがって、これを各構成について別々に実行し、異なるプラットフォームに対して異なるコード支援設定を得ることができます。
</p>
<h2><a name="cannotbuild"></a>プロジェクトをビルドできない場合のコード支援の構成</h2>
<p>コード支援を構成ウィザードは、デバッグ情報を使用してコードをビルドした場合に最も効率的です(最適なオプションは、GNUコンパイラの場合は<tt>-g3 -gdwarf-2</tt>で、Oracle Solaris Studioコンパイラの場合は<tt>-g</tt>のみです)。
</p>
<p>プロジェクトをビルドできないか、デバッグ情報が含まれていない場合、コード支援を構成ウィザードには、「ファイル・システムからC/C++ヘッダー・ファイルを検索」という特殊なモードがあります。このモードでは、NetBeans IDEはファイル・システムからヘッダーを検索することによって、失敗したincludeディレクティブを解決しようとします。ウィザードはヘッダーを検索するためのパスを入力するようユーザーに求めます。デフォルトでは、検索されるパスはプロジェクト・ソース・ルートです。
</p>
<p>ウィザードを使用するには、プロジェクトを右クリックし、「コード支援」→「コード支援を構成」を選択します。ウィザードの手順に従って、IDEがコード支援を更新できるようにします。「ヘルプ」ボタンをクリックすると、各手順に関する詳細が表示されます。</p>
<p></p>
<h2><a name="definitiondeclaration"></a>ハイパーリンクを使用した、呼出しと宣言間のナビゲート</h2>
<p>ハイパーリンク・ナビゲーション機能を使用して、関数、クラス、メソッド、変数または定数の呼出しからその宣言にジャンプできます。ハイパーリンクを使用するには、次のいずれかを行います。</p>
<ul>
<li>[Ctrl]を押しながら、マウスをクラス、メソッド、変数または定数の上に移動します。ハイパーリンクが、要素に関する情報を表示するツールチップとともに表示されます。ハイパーリンクをクリックすると、エディタが宣言にジャンプします。[Alt]+[←]を押すと、呼出しに戻ります。
</li>
<li>マウスをIDの上に移動し、[Ctrl]+[B]を押します。エディタが宣言にジャンプします。</li>
<li> [Alt]+[←]を押すと、呼出しに戻ります。[Alt]+[←]および[Alt]+[→]を押して、カーソル位置の履歴を前後に移動します。</li>
</ul>
<p>項目を右クリックし、「ナビゲート」→「宣言/定義へ移動」を選択したり、他のオプションを選択してコード内を移動したりすることもできます。</p>
<h2><a name="namespace"></a>名前空間のすべての定義の検索</h2>
<p>
名前空間は、プロジェクトの異なるファイル内で定義される可能性があります。異なる名前空間定義の間を移動するには、「クラス」ウィンドウ(Ctrl-9)を使用します。関心のある名前空間を右クリックし、「すべての宣言」を選択します。ファイル名によってソートされたすべての定義の一覧が表示されます。
</p>
<div class="feedback-box"><a href="mailto:users@cnd.netbeans.org?subject=subject=Feedback:%20C/C++%20Application%20How-Tos%20-%20NetBeans%20IDE%208.0">このチュートリアルに関するご意見をお寄せください</a><br style="clear:both;">
</div>
</body>
</html>