C/C++ツール・コレクション・ディスクリプタの使用 - NetBeans IDEチュートリアル

This tutorial needs a review. You can open a JIRA issue, or edit it in GitHub following these contribution guidelines.

執筆: _Alexander Simon_ 2014年3月 [リビジョン番号: V8.0-1]

netbeans stamp
Figure 1. このページの内容は、NetBeans IDE 8.0に適用されます

このチュートリアルに従うには、次のソフトウェアが必要です。

ソフトウェア 必須バージョン

NetBeans IDE (C/C++のサポートを含む)

バージョン8.0

Java Development Kit (JDK)

バージョン7または8

必要なソフトウェアのダウンロードとインストールについては、NetBeans IDEのインストール手順およびC/C+/Fortran向けのNetBeans IDEの構成+を参照してください。

概要

このチュートリアルでは、NetBeans IDE 8.0で既存のツール・コレクションを編集する方法と、既存のツール・コレクションのカスタム・バージョンを作成する方法を示します。

ここで示す例はOracle SolarisおよびLinuxのGNUツール・コレクションに適用されますが、この概念はWindowsおよびMacにも適用されます。この情報を使用して、次の操作の方法を学習できます。

  • IDEでC/C++ファイルをコンパイルするときにデフォルトで使用されるコンパイラ・フラグの変更

  • IDEでサポートされていないコンパイラの追加

ツール・コレクション

ツール・コレクションは、コンパイラ、makeユーティリティおよびデバッガのセットで、_ツール・コレクション・ディスクリプタ_によってIDEで指定されます。コードのコンパイル、makeまたはデバッグを行うたびに、プロジェクトで使用するように構成されているツール・コレクションに対する、ツール・コレクション・ディスクリプタに記述された実行可能ファイルをIDEは実行します。コード支援機能では、ツール・コレクション・ディスクリプタから取得したインクルード・パスとマクロが使用されます。

ツール・コレクション・ディスクリプタは、フォルダ org/netbeans/modules/cnd/toolchain/resources/toolchaindefinition/ 内のモジュール IDE_HOME/cnd/modules/org-netbeans-modules-cnd-toolchain.jar にあるXMLファイルです。これらの元のIDEツール・ディスクリプタXMLファイルは編集しないでください。

この記事では、編集可能なツール・ディスクリプタの複製ファイルをNetBeansユーザー・ディレクトリ内に作成する方法について説明します。IDEでは、元のバージョンのかわりに、ユーザー・ディレクトリ内にあるツール・コレクション・ディスクリプタの情報が使用されるようになります。

コミュニティ貢献ツール・コレクション

ツール・コレクションの一部のプラグインは、NetBeansコミュニティ内のユーザーによって提供されています。

これらのプラグインは正式にサポートされていませんが、独自のプラグインの作成に役立つ場合は、ここで参照されます。

Windowsユーザーには、NetBeansコミュニティのユーザーによる次の記事も役立つ場合があります: NetBeans Setup and GNU Cross-Toolchain Configuration for ARM Development

ツール・コレクション・ディスクリプタの編集

NetBeans IDEにはディスクリプタを編集するGUIがないため、ツール・コレクション・ディスクリプタを編集するには多少のコツが必要です。この項では、IDEによるツールの使用方法を変更するために編集可能な、ツール・コレクション・ディスクリプタの「シャドウ」の複製コピーを作成する方法について説明します。

  1. IDEが実行中の場合は終了します。

  2. ファイル IDE-HOME/etc/netbeans.conf を編集します。 IDE-HOME はNetBeansインストール・ディレクトリを表します。

  3. 次のフラグを netbeans_default_options エントリに追加します。

-J-Dcnd.toolchain.personality.create_shadow=true
  1. IDEを起動して「ツール」>「オプション」を選択し、「オプション」ウィンドウの上のペインで「C/C++」を選択します。

ツール・コレクション・ディスクリプタの「シャドウ」バージョンが含まれるディレクトリがNetBeansユーザー・ディレクトリ内に作成されます。

userdir

/config/CND/ToolChain

NetBeansユーザー・ディレクトリの場所は、使用しているオペレーティング・システムによって変わります。 userdir/config/CND/ToolChain ディレクトリの場所の例を次に示します。

  • Windows: C:\Documents and Settings_username_\Application Data\NetBeans_version_\config\CND\ToolChain

  • Mac: /Users/username/Library/Application Support/NetBeans/version/config/CND/ToolChain

  • LinuxおよびSolaris: /home/username/.netbeans/version/config/CND/ToolChain

作成されたディスクリプタのリストは、次のようになります。

CLang.xml                             SunStudio.xml
CLang_mac.xml                         SunStudio_10.xml
CLang_solaris.xml                     SunStudio_11.xml
Cygwin.xml                            SunStudio_12.1_solaris-sparc.xml
Cygwin_4.x.xml                        SunStudio_12.1_solaris-x86_linux.xml
GNU.xml                               SunStudio_12.2_linuxCompatGNU.xml
GNU_mac.xml                           SunStudio_12.2_solaris-sparc.xml
GNU_solaris.xml                       SunStudio_12.2_solaris-x86_linux.xml
Intel.xml                             SunStudio_12.3_linuxCompatGNU.xml
Interix.xml                           SunStudio_12.3_solaris-sparc.xml
MinGW.xml                             SunStudio_12.3_solaris-x86_linux.xml
MinGW_TDM.xml                         SunStudio_12.xml
OSS_linuxCompatGNU.xml                SunStudio_8.xml
OSS_solaris-sparc.xml                 SunStudio_9.xml
OSS_solaris-x86_linux.xml             WinAVR.xml
OracleSolarisStudio.xml

使用しているtoolchainのディスクリプタを編集できます。たとえば、SolarisでGNUを使用している場合は GNU_solaris.xml ファイルを編集し、WindowsでMinGWを使用している場合は MinGW.xml ファイルを編集する必要があります。

これらのディスクリプタXMLファイルで使用されるタグの詳細は、ツール・コレクションXMLファイルの詳細を参照してください。タグの値を変更することで、IDEでのツールの動作を変更できます。

このディレクトリのディスクリプタは、_IDE-HOME_ディレクトリ内の正式バージョンよりも優先されます。IDEで使用しないユーザー・ディレクトリ内のツール・ディスクリプタは削除する必要があります。

  1. -J-Dcnd.toolchain.personality.create_shadow=true フラグを IDE-HOME/etc/netbeans.conf から削除して、IDEがシャドウ・ディスクリプタを再度作成しないようにします。

  1. 変更作業が終了したら、変更されたツール・ディスクリプタが使用されるようにするため、IDEを再起動します。

カスタム・ツール・コレクションの作成

この項では、デバッグ用にコンパイラ・フラグを一部変更した、GNUツール・コレクションに基づくツール・コレクションを作成する方法について説明します。この例では、新規ツール・コレクションが含まれる新規NetBeansモジュールを作成するための手順が示されます。これによってツール・コレクションを共有、またはIDEの別のインスタンスで使用することが可能になります。

NetBeansモジュール作成の概要については、NetBeansプラグインのクイック・スタートを参照してください。

カスタム・ツール・コレクションを作成するには:

  1. NetBeansインストールにNetBeansプラグイン開発モジュールが含まれていることを確認してください。

「ツール」>「プラグイン」と選択して、「インストール済み」タブをクリックします。NetBeansプラグイン開発モジュールがインストールされていない場合は、「使用可能なプラグイン」タブをクリックして、モジュールをインストールします。検索ボックスに「プラグイン」と入力すると、すばやく探すことができます。

  1. 「ファイル」>「新規プロジェクト」を選択して、新規NetBeansモジュールを作成します。新規プロジェクト・ウィザードのプロジェクトを選択ページで、ウィザードの最初のステップとして、カテゴリに「NetBeansモジュール」、プロジェクトに「モジュール」を選択します。「次」をクリックします。

  1. 名前と場所ページで、プロジェクト名を入力し(「 mytoolchain 」など)、その他のフィールドはそのままにします。「次」をクリックします。

  1. 「基本モジュール構成」ページで、「コード名ベース」に org.myhome.mytoolchain と入力します。これは、作成中のモジュールを識別する一意の文字列を定義します。コード名ベースは、モジュールのメイン・パッケージとしても使用されます。

  1. OSGiではなくデフォルトのNetBeansモジュール・システムを使用することになるため、「OSGiバンドルを生成」チェックボックスは選択しないでください。

  1. 「終了」をクリックします。IDEではmytoolchainという新規プロジェクトが作成されます。

  1. 「プロジェクト」タブで、mytoolchainプロジェクト・ノードを右クリックし、「新規」>「その他」を選択します。

  1. 新規ファイル・ウィザードで、カテゴリ「モジュールの開発」およびファイル・タイプ「XMLレイヤー」を選択してから、「次」をクリックして「終了」をクリックします。

IDEでは、メイン・パッケージ org.myhome.mytoolchain 内のソース・パッケージ・ノードの下に layer.xml が作成され、エディタで layer.xml が開かれます。

  1. ファイルに <filesystem/> タグが含まれている場合は、そのタグを開始および終了の filesystem タグに置き換えます。 <filesystem>

 ``</filesystem>``
  1. filesystem タグ内に、 layer.xml の次のテキストをコピーして貼り付けます。

<folder name="CND">
        <folder name="Tool">
            <file name="GNU_tuned_flavor" url="toolchain/GNU_tuned_flavor.xml">
                <attr name="extends" stringvalue="GNU_flavor"/>
            </file>
            <file name="GNU_tuned_cpp" url="toolchain/GNU_tuned_cpp.xml">
                <attr name="extends" stringvalue="GNU_cpp"/>
            </file>
        </folder>
        <folder name="ToolChains">
            <folder name="GNU_tuned">
                <attr name="position" intvalue="5000"/>
                <attr name="SystemFileSystem.localizingBundle" stringvalue="org.myhome.mytoolchain.Bundle"/>
                <file name="flavor.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_tuned_flavor"/>
                </file>
                <file name="c.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_c"/>
                </file>
                <file name="cpp.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_tuned_cpp"/>
                </file>
                <file name="fortran.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_fortran"/>
                </file>
                <file name="assembler.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_assembler"/>
                </file>
                <file name="scanner.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_scanner"/>
                </file>
                <file name="linker.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_linker"/>
                </file>
                <file name="make.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_make"/>
                </file>
                <file name="debugger.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_debugger"/>
                </file>
                <file name="qmake.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_qmake"/>
                </file>
                <file name="cmake.shadow">
                    <attr name="originalFile" stringvalue="CND/Tool/GNU_cmake"/>
                </file>
            </folder>
        </folder>
    </folder>
  1. Bundle.properties ファイルを開き、次の文字列を追加します。 CND/ToolChains/GNU_tuned=My GNU Tuned Tool Collection

  1. ソース・パッケージの下の org.myhome.mytoolchain パッケージを右クリックし、「新規」>「Javaパッケージ」を選択してサブパッケージ toolchain を作成します。デフォルト・パッケージ名の newpackagetoolchain に置き換えて、「終了」をクリックします。IDEではサブパッケージ org.myhome.mytoolchain.toolchain が作成されます。

  1. org.myhome.mytoolchain.toolchain サブパッケージを右クリックして「新規」>「空のファイル」を選択することで、新規ファイルを作成します。ファイルに GNU_tuned_flavor.xml という名前を付けて、「終了」をクリックします。

「空のファイル」がオプションとして表示されない場合、「その他」を選択してから新規ファイル・ウィザードで、カテゴリ「その他」およびファイル・タイプ「空のファイル」を選択して「次」をクリックします。

このファイルは、新規ツール・コレクションのツール・コレクション・ディスクリプタです。

  1. GNU_tuned_flavor.xml 内に、次のテキストをコピーして貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>
<toolchaindefinition xmlns="https://netbeans.org/ns/cnd-toolchain-definition/1">
    <toolchain name="GNU_tuned_flavor" display="GNU_tuned" family="GNU" qmakespec="${os}-g++"/>
    <platforms stringvalue="linux,sun_intel,sun_sparc"/>
</toolchaindefinition>
  1. org.myhome.mytoolchain.toolchain サブパッケージを右クリックして「新規」>「空のファイル」を選択することで、別のファイルを作成します。ファイルに GNU_tuned_cpp.xml という名前を付けて、「次」をクリックします。

  1. GNU_tuned_cpp.xml 内に、次のテキストをコピーして貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>
<toolchaindefinition xmlns="https://netbeans.org/ns/cnd-toolchain-definition/1">
    <cpp>
        <compiler name="g++"/>
        <development_mode>
            <fast_build flags=""/>
            <debug flags="-g3 -gdwarf-2" default="true"/>
            <performance_debug flags="-g -O"/>
            <test_coverage flags="-g"/>
            <diagnosable_release flags="-g -O2"/>
            <release flags="-O2"/>
            <performance_release flags="-O3"/>
        </development_mode>
    </cpp>
</toolchaindefinition>

デバッグ・フラグは、デフォルトのGNUツール・コレクションの記述に設定されているフラグと異なり、-g3および -gdwarf-2に設定されています。

プロジェクト・ツリーは次のようになります。

project
Figure 2. プロジェクト・ツリー

「単体テスト」フォルダが存在しない場合があります。

  1. 「プロジェクト」ウィンドウで、「 mytoolchain 」プロジェクト・ノードを右クリックし、「実行」を選択します。モジュールがビルドされ、IDEの新しいインスタンス(モジュールのデフォルト・ターゲット・プラットフォーム)にインストールされます。ターゲット・プラットフォームが開き、新規モジュールを試すことができます。

  1. 実行中のモジュールで、「ツール」>「オプション」を選択し、「オプション」ウィンドウの上ペインで「C/C++」を選択して、「ビルド・ツール」タブを選択します。

  1. 新規ツール・コレクション(GNU_tuned)が表示されない場合は、「デフォルトに戻す」をクリックします。環境を再スキャンするように求められた場合、「はい」をクリックして続行します。

新規ツール・コレクションが表示されます。

options
Figure 3. オプション・パネル
  1. 「ファイル」>「新規プロジェクト」>「サンプル」>「C/C」>「Welcome」を選択して、新規C/Cサンプル・プロジェクト Welcome を作成します。

  1. プロジェクト・ノードを右クリックし、「プロパティ」を選択します。「プロジェクト・プロパティ」ダイアログ・ボックスで「ビルド」ノードを選択し、「ツール・コレクション」をGNU_tunedツール・コレクションに設定して、「OK」をクリックします。

  1. プロジェクトをビルドします。コンパイラに -g3 -gdwarf-2 というフラグがあります。

g++ -c -g3 -gdwarf-2 -MMD -MP -MF build/Debug/GNU_tuned-Solaris-x86/welcome.o.d -o build/Debug/GNU_tuned-Solaris-x86/welcome.o welcome.cc
  1. 「プロジェクト・プロパティ」ダイアログ・ボックスでGNUツール・コレクションを選択して、「OK」をクリックします。

  1. プロジェクトを再ビルドし、「出力」ウィンドウでコンパイル行を比較します。

g++ -c -g -MMD -MP -MF build/Debug/GNU-Solaris-x86/welcome.o.d -o build/Debug/GNU-Solaris-x86/welcome.o welcome.cc

GNU_tunedツール・コレクションにはデバッグ用の異なるコンパイラ・フラグ、GNUコンパイラの開発モードがあることを参照できる必要があります。

通常のIDEでGNU_tunedツール・コレクション用の新規モジュールを使用する場合は、バイナリ(..nbmファイル)を作成してプラグインとして追加できます。

  1. mytoolchainモジュール・プロジェクトを右クリックして「NBMを作成」を選択します。「ファイル」タブで、プロジェクトのbuildサブディレクトリを確認すると、.nbmファイルが作成されています。

  2. 「ツール」>「プラグイン」を選択し、「プラグイン」ダイアログ・ボックスで「ダウンロード済」タブをクリックします。

  3. 「プラグインの追加」をクリックして、buildディレクトリに移動し、モジュール .nbmファイルを選択して「開く」をクリックします。プラグイン・モジュールが「ダウンロード済」タブの一覧に追加されます。

  4. 「ダウンロード済」タブでチェックボックスをクリックしてモジュールを選択し、「インストール」ボタンをクリックします。NetBeansプラグイン・インストーラが開きます。

  5. 「次」をクリックして、インストールが終了するまで、インストーラ画面を先に進めます。

  6. IDEを再起動して「ツール」>「オプション」を選択し、「オプション」ウィンドウの上ペインで「C/C++」を選択して、「ビルド・ツール」タブを選択します。

  7. 新規ツール・コレクション(GNU_tuned)が表示されない場合は、「デフォルトに戻す」をクリックします。環境を再スキャンするように求められた場合、「はい」をクリックして続行します。

ツール・コレクションXMLファイルの詳細

ここでは、ツール・コレクションXMLファイルで最も重要なタグについて説明します。

ツールチェーンXMLファイルでサポートされるすべてのタグと属性のスキームについては、NetBeans IDEのソース・ツリー内にあるファイル toolchaindefinition.xsd を検索できます。

ツール・コレクション定義タグ

タグ 属性 説明

toolchain

ツール・コレクションの名前

name

ツール・コレクションの名前

display

ツール・コレクションの表示名

family

ツール・コレクションのグループ名

platforms

サポート対象のプラットフォーム

stringvalue

サポート対象プラットフォームのカンマ区切りのリスト。 可能な値は次のとおりです。

* linux * unix * sun_intel * sun_sparc * windows * mac * none

makefile_writer

カスタムMakefileライター。

class

カスタムMakefileライターのクラス名。org.netbeans.modules.cnd.makeproject.spi.configurations.MakefileWriter を実装しています。

drive_letter_prefix

ファイル名の特別な接頭辞

stringvalue

UNIXの場合は、「/」 Windowsのcygwinの場合は、「/cygdrive/」

base_folders

base_folderタグのコンテナ。 1つのbase_foldersタグには1つ以上のbase_folderタグが含まれています。

base_folder

コンパイラのベース・ディレクトリの説明。 このタグには、次のタグを含めることができます。

regestry

ツールのWindowsレジストリ・キー。これはミススペルですが、XMLタグには「regestry」と記述する必要があります。

pattern

NetBeans IDEがレジストリ内のコンパイラを検索できるようにする正規表現

suffix

実行可能ファイルを含むフォルダ

path_patern

NetBeans IDEがパスをスキャンしてコンパイラを検索できるようにする正規表現。これはミススペルですが、XMLタグには「path_patern」と記述する必要があります。

command_folders

command_folderタグのコンテナ。 1つのcommand_foldersタグには1つ以上のcommander_folderタグが含まれています。

command_folder

UNIX系のコマンドが格納されているディレクトリを記述。 Windows上のMinGWコンパイラにのみ必要。command_folderタグには、次のタグを含めることができます。

regestry

コマンドのWindowsレジストリ・キー。これはミススペルですが、XMLタグには「regestry」と記述する必要があります。

pattern

NetBeans IDEがレジストリ内のコマンド・フォルダを検索できるようにする正規表現

suffix

実行可能ファイルを含むフォルダ

path_patern

NetBeans IDEがコマンドを検索できるようにする正規表現。これはミススペルですが、XMLタグには「path_patern」と記述する必要があります。

scanner

エラー・パーサー・サービスの名前。カスタム・コンパイラのエラー・ハンドラの作成を参照してください。

id

エラー・パーサー・サービスの名前

コンパイラ・フラグ

この表では、コンパイラの記述とツールチェーンのコンパイラ・フラグの指定に使用されるタグの一覧を示します。

タグ 説明 GNUコンパイラの例

c,cpp

次のサブノードに配置されているコンパイラ・フラグのセット

recognizer

IDEでコンパイラを検索できるようにする正規表現

Windowsのcygwin下のGNU用 .[\\/].*cygwin.[\\/]bin[\\/]?$

compiler

コンパイラ名(実行可能ファイルの名前)

gccまたはg++

version

バージョン・フラグ

--version

system_include_paths

システム・インクルード・パスを取得するフラグ

-x c -E -v

system_macros

システム・マクロを取得するフラグ

-x c -E -dM

user_include

ユーザー・インクルード・パスを追加するフラグ

-I

user_file

_file_のコンテンツを他のファイルの前に入れるフラグ

-include file

user_macro

ユーザー・マクロを追加するフラグ

-D

development_mode

各種開発モードのフラグのグループ

warning_level

各種警告レベルのフラグのグループ

architecture

各種アーキテクチャのフラグのグループ

strip

デバッグ情報を取り除くフラグ

-s

c_standard

C標準で使用するフラグを指定します。c89タグ、c99およびc11タグとともに使用します。

c89 flags="-std=c89" c99 flags="-std=c99" c11 flags="-std=c11"

cpp_standard

C++標準で使用するフラグを指定します。cpp98タグおよびcpp11タグとともに使用します。

cpp98 flags="-std=c98" cpp11 flags="-std=c11" cpp11 flags="-std=gnu++0x"

output_object_file

オブジェクト・ファイルを指定するフラグ

-o (-oの後ろのスペースが必要です)

dependency_generation

依存性生成のフラグ

-MMD -MP -MF $@.d

precompiled_header

再コンパイルされたヘッダーのフラグ

-o $@

important_flags

デフォルト・システムのインクルード・パスおよびコード支援用の事前定義マクロを変更するコンパイラ・フラグを指定する正規表現

-O1

-O2

-O3

-O4

-O5

-Ofast

-Og

-Os

-ansi

-fPIC

-fPIE

-fasynchronous-unwind-tables

-fbuilding-libgcc

-fexceptions

-ffast-math

-ffinite-math-only

-ffreestanding

-fgnu-tm

-fhandle-exceptions

-fleading-underscore

-fno-exceptions

-fno-rtti

-fnon-call-exceptions

-fnon-call-exceptions

-fopenmp

-fpic

-fpie

-fsanitize=address

-fshort-double

-fshort-wchar

-fsignaling-nans

-fstack-protector(\W

$

-)

-fstack-protector-all

-funsigned-char

-funwind-tables

-g(\W

$

-)

-ggdb

-gsplit-dwarf

-gtoggle

-m128bit-long-double

-m3dnow

-m64

-mabm

-madx

-maes

-march=.*

-mavx

-mavx2

-mbmi

-mbmi2

-mf16c

-mfma(\W

$

-)

-mfma4

-mfsgsbase

-mlong-double-64

-mlwp

-mlzcnt

-mpclmul

-mpopcnt

-mprfchw

-mrdrnd

-mrdseed

-mrtm

-msse3

-msse4(\W

$

-)

-msse4.1

-msse4.2

-msse4a

-msse5

-mssse3

-mtbm

-mtune=.*

-mx32

-mxop

-mxsave

-mxsaveopt

-pthreads

-std=.*

-xc($

+\+$)

multithreading

マルチスレッドのサポートのフラグのグループ

Oracle Solaris Studioツール・コレクションのみに適用され、GNUベースのツール・コレクションでは使用されない

standard

各種言語標準のフラグのグループ

Oracle Solaris Studioツール・コレクションのみに適用され、GNUベースのツール・コレクションでは使用されない

language_extension

カスタム・コンパイラ・プロバイダの作成

NetBeans IDEには、次のデフォルトのコンパイラ・プロバイダがあります。 org.netbeans.modules.cnd.toolchain.compilers.MakeProjectCompilerProvider このプロバイダは、ほとんどのtoolchainで適切に動作しますが、独自のプロバイダを作成することもできます。

独自のコンパイラ・プロバイダを作成するには:

  • 抽象クラスorg.netbeans.modules.cnd.api.compilers.CompilerProviderを拡張します。

  • 次のように、クラスをサービスとして定義し、デフォルト・プロバイダの前に挿入します。

@org.openide.util.lookup.ServiceProvider(service = org.netbeans.modules.cnd.spi.toolchain.CompilerProvider.class,
position=500)
public class CustomCompilerProvider extends CompilerProvider {
...
}

position=500属性は、カスタム・プロバイダがデフォルト・プロバイダの前に呼び出されることを保証します。カスタム・プロバイダは、「createCompiler()」メソッドで、ツールのオーバーライド用にNULLでない「Tool」を返す必要があります。

カスタム・コンパイラのエラー・ハンドラの作成

NetBeans IDEには、デフォルトのコンパイラ・エラー・ハンドラが2つあります。

  • GNUコンパイラ用

  • Sun Studioコンパイラ用

GNUコンパイラ・ハンドラは、どのようなGNUコンパイラに対しても適切に動作しますが、必要に応じて独自のコンパイラ・エラー・ハンドラを定義することもできます。

独自のコンパイラ・エラー・ハンドラを作成するには:

  • 抽象クラスorg.netbeans.modules.cnd.spi.toolchain.CompilerProviderを拡張します

  • クラスをサービスとして定義します:

@org.openide.util.lookup.ServiceProvider(service = org.netbeans.modules.cnd.spi.toolchain.CompilerProvider.class)
      public class CustomCompilerProvider extends ErrorParserProvider {
          ...
          @Override
          public String getID() {
      	return "MyParser";  // NOI18N
          }
      }
  • エラー・スキャナとツール・コレクションの記述を、IDでリンクします:

</scanner id="MyParser">
...
  </scanner>

関連項目

NetBeans IDEでのC/C/Fortranを使用した開発に関する詳細な記事は、link:https://netbeans.org/kb/trails/cnd.html[+C/Cの学習+]を参照してください。

link:mailto:users@cnd.netbeans.org?subject=Feedback:Using%20the%20C/C+%20Tool%20Collection%20Descriptors%20-%20NetBeans%20IDE%208.0%20Tutorial[+このチュートリアルに関するご意見をお寄せください]